docker报错Error response from daemon: Container xxx is not running

文章讲述了作者在使用Docker时遇到的问题,即在尝试运行和管理容器时,由于命令格式错误导致容器没有持续运行。通过StackOverflow找到的解决方案是正确使用`dockerrun-t-d--name`命令并确保容器保持运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 问题

在移植了docker后,执行了sudo docker run --name myrosort -p 80:80 -d rosort 指令运行名为myrosort的容器,通过sudo docker ps -a也可以看到确实运行了

(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker run --name myrosort -p 80:80 -d rosort
53e999137030b67c903a5bd5966ad378dd3ee0224434e57de60ebf91124b05bf
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker ps -a
CONTAINER ID   IMAGE         COMMAND     CREATED          STATUS                      PORTS     NAMES
53e999137030   rosort        "/bin/sh"   16 seconds ago   Exited (0) 14 seconds ago             myrosort
81999b396b56   hello-world   "/hello"    3 hours ago      Exited (0) 3 hours ago                pensive_austin
1077ee673c62   hello-world   "/hello"    3 days ago       Exited (0) 3 days ago                 eager_margulis

但接下来想要进入容器,执行sudo docker start myrosort以及 sudo docker exec -it myrosort bash指令的以后发现报错,容器没有运行,53e999137030b67........这一长串的字符是容器对应的ID。网上搜了几百个方法例如这个,都是提醒要先start 容器,但明明我已经start了

(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker start myrosort
myrosort
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker exec -it myrosort bash
Error response from daemon: Container 53e999137030b67c903a5bd5966ad378dd3ee0224434e57de60ebf91124b05bf is not running

start了一下ID, 执行sudo docker start 53e999137030 (这里注意要跟sudo docker ps -a查询到的container ID移植),再去以ID的形式进入容器,也失败了。。。。

(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker start 53e999137030
[sudo] password for neousys: 
53e999137030
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker exec -it myrosort bash
Error response from daemon: Container 53e999137030b67c903a5bd5966ad378dd3ee0224434e57de60ebf91124b05bf is not running

2. 解决方法

在stackoverflow上找到这个方法,看起来就是容器没有一直运行,想要容器一直保持运行,要注意输入指令的格式
在这里插入图片描述
首先为了确保运行的容器正确,我先打印一下所有的镜像: sudo docker images,看到我的镜像名称,repository是rosort ,然后根据上图的格式,sudo docker run -t -d --name newport rosort newport是我新命名的,rosort 是image name ,再输入sudo docker start newport就可以一直运行了,接下来也就成功进入了这个容器

(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
<none>        <none>    f5e992705c48   3 hours ago    6.3GB
pickup        v1        b90b380f7902   5 hours ago    6.3GB
hello-world   latest    9c7a54a9a43c   4 months ago   13.3kB
rosort        latest    ef0e3337697d   6 months ago   6.06GB
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker run -t -d --name newport  rosort
fba2111eeb817a09d90f4d479502ebb8583e3efd4d1c1f3b0ece2860235eb5fe
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker start newport
newport

3. 总结

出现这个问题的根本原因是容器没有一直run 起来,是我一开始输的指令错了,错误的指令:

sudo docker run --name myrosort -p 80:80 -d rosort

正确的指令:

sudo docker run -t -d --name newport  rosort

docker新手,在操作过程中发现了许多许多的坑。后续有空再汇总一下

<think>好的,我现在要解决用户遇到的Docker错误:Error response from daemon: No such container: 66f27d3766b4。用户的问题是无法删除或找不到这个容器66f27d3766b4。首先,我需要回忆Docker的相关命令和可能的情况。 首先,用户可能试图用容器ID 66f27d3766b4来执行删除或其他操作,但系统提示找不到该容器。这种情况通常有几个可能的原因: 1. **容器不存在或已被删除**:可能用户之前已经删除了这个容器,或者输入的容器ID有误。这时候需要确认容器是否存在。 2. **容器ID输入错误**:Docker容器ID通常是长格式的,但用户可以使用前几个字符(只要足够唯一)。但可能用户输入的部分ID与其他容器冲突,或者输错了字符。 3. **容器处于异常状态**:比如容器已经退出,但未被正确清理,或者处于某种中间状态,导致无法识别。 接下来,我需要根据这些可能性,逐步给出解决方案。首先,用户需要确认容器是否存在。可以使用`docker ps -a`来列出所有容器,包括已停止的。如果找不到该容器,说明已经被删除或者ID错误。如果存在,可能需要强制删除。 另外,用户可能误用了容器ID和镜像ID。需要区分两者的不同,避免混淆。此外,检查Docker服务是否正常运行,有时候服务问题可能导致命令无法正确执行。 还有可能用户在使用命令时权限不足,需要加上sudo或者以管理员身份运行。不过,错误信息通常会是权限拒绝,而不是找不到容器,所以这个可能性较低,但也需要提一下。 最后,如果所有方法都无效,可能需要重启Docker服务,或者检查系统日志来进一步排查问题。</think>### 解决方案:Docker报错`No such container`的排查步骤 #### 1. 确认容器是否存在 **操作命令**: ```bash docker ps -a | grep 66f27d3766b4 ``` - **说明**:`docker ps -a`会列出所有容器(包括已停止的),通过`grep`过滤出目标容器ID。若未显示结果,说明容器已被删除或ID输入错误[^1]。 #### 2. 检查容器ID是否输入错误 - Docker支持使用容器ID的前缀(至少输入前4个字符且唯一)。例如: ```bash docker rm 66f2 ``` - **注意**:需确保前缀与其他容器ID不重复。若存在重复,需输入更多字符以区分。 #### 3. 尝试强制删除容器容器已停止但无法正常删除(如残留元数据): ```bash docker rm -f 66f27d3766b4 ``` - `-f`参数用于强制删除运行中的容器(需谨慎使用)。 #### 4. 区分容器与镜像ID - **容器ID**:由`docker run`创建,可通过`docker ps -a`查看。 - **镜像ID**:由`docker images`列出,无法通过`docker rm`删除(需用`docker rmi`)。 - 若混淆二者会报错,需检查输入的是否为容器ID[^2]。 #### 5. 重启Docker服务(极端情况) 若Docker服务状态异常: ```bash sudo systemctl restart docker ``` - 重启后再次尝试删除操作。 #### 6. 检查Docker日志 查看Docker守护进程日志,定位深层问题(如存储驱动错误): ```bash journalctl -u docker.service --since "10 minutes ago" ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值