无法杀死容器:<container-id>:尝试终止容器,但未收到退出事件。

69

我无法停止、删除或杀死我的 Docker 容器。以下是使用它们的命令和相应的错误消息:

1. docker stop <container-id>
2. docker kill <container-id>
3. docker rm <container-id>

我明白了

1. Error response from daemon: cannot stop container: <container-id>: tried to kill container, but did not receive an exit event
2. Error response from daemon: cannot kill container: <container-id>: tried to kill container, but did not receive an exit event
3. Error response from daemon: You cannot remove a running container <container-id>. Stop the container before attempting removal or force remove

使用sudo为所有内容添加前缀后,错误消息相同。使用--force运行上述所有命令时也会出现相同的消息。我该如何解决这个问题?似乎我无法停止、杀死或删除容器,因为它没有“接收到退出事件”。这里没有任何帮助:Error response from daemon: cannot stop container - signaling init process caused "permission denied"


5
如果可以的话,请运行 systemctl restart docker 重启 docker 服务。 - Saeed
4
重启解决了问题。谢谢。但是没有其他方法吗? - lapurita
很高兴它起作用了。不确定为什么,但可能是Docker容器内部出了问题,重新启动Docker就解决了。现在尝试docker stop container_id,看看问题是否已经解决。 - Saeed
11
所有答案基本上都建议“彻底删除docker,包括正在运行的容器和docker本身”。但问题的重点不是要找出如何强制终止运行的容器而无需重新启动docker本身(或停止其他容器)吗? - ugliest
对于 Windows 系统(Docker Desktop),重新启动引擎也有帮助。 - diman82
显示剩余4条评论
5个回答

99

执行命令后,在Mac 12.6上显示错误 - ~“无法退出。退出代码:0。”并打开Docker应用程序窗口,其中包含无限的“停止…”消息。手动重新打开应用程序,应用程序会显示并立即隐藏带有额外无限“等待…”消息+“引擎null”的错误,位于左下角。手动再次启动应用程序,它可以完美运行(+能够停止一些自动运行的容器)。 哦,亲爱的...从未在Linux(例如Ubuntu 20.04)上遇到过这样的问题。主要原因是什么? - Artfaith

20

以下是您可以尝试的一些解决方案:

  1. 重启 Docker 服务:sudo systemctl restart docker.service
  2. 重启主机
  3. 进入容器 docker exec -it ContainerName /bin/bash 然后杀死容器 kill 1
  4. 您可以禁用 apparmor 服务,首先检查状态 sudo apparmor_status 然后禁用它 sudo systemctl disable apparmor 然后撤销 apparmor sudo service apparmor teardown。现在再次检查状态 sudo apparmor_status

4

如果您无法使用docker exec -it ContainerName /bin/bash连接到容器,则可以直接查找并杀死容器的进程,基于容器ID查找PID。如果是使用compose启动的,则ID可能是较长内部ID的开头。

ps auxw | grep $(docker container ls | grep containername | awk '{print $1}') | awk '{print $2}'
kill -9 12345678

很有可能进程无法被终止(因为docker尝试杀死它),原因可能是挂载或其他网络问题。kill -9 是一个sigkill信号,所以如果这不起作用,你有一个更大的问题,通常意味着服务器重启是唯一的解决方案。


1
我遇到了同样的问题。
我也在运行docker-desktop。我重启了docker,然后从docker-desktop停止了容器。最后成功从docker-desktop中删除了它。

-1

当我运行docker-compose down关闭其中一个容器时,我遇到了同样的问题,但在运行docker-compose restart后,一切都恢复正常。

我不需要重新启动整个Docker服务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接