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

lap*_*ita 74 containers docker docker-compose devops

我无法停止、删除或终止我的 docker 容器。下面给出的命令及其各自的错误消息:

1. docker stop <container-id>
2. docker kill <container-id>
3. docker rm <container-id>
Run Code Online (Sandbox Code Playgroud)

我明白了

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
Run Code Online (Sandbox Code Playgroud)

如果我用 sudo 为所有内容添加前缀,则会出现相同的错误消息;如果我使用 --force 运行上面的所有命令,也会出现相同的消息。我该如何解决这个问题?似乎我无法停止、杀死或删除容器,因为它没有“收到退出事件”。这里没有任何帮助:来自守护程序的错误响应:无法停止容器 - 信号初始化进程导致“权限被拒绝”

小智 103

我使用了 wilon 的答案https://forums.docker.com/t/restart-docker-from-command-line/9420/2

我跑了killall Docker && open /Applications/Docker.app

完成后,我开始运行docker-compose down,所有容器都按预期停止。


小智 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


Tim*_*bet 6

如果您无法使用 连接到容器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
Run Code Online (Sandbox Code Playgroud)

由于其他原因,例如挂载或其他网络问题,几乎可以肯定该进程无法被终止(因为 docker 试图终止它)。Kill -9 是一个 sigkill,所以如果这不起作用,那么您就会遇到更大的问题,这通常意味着服务器重新启动是您唯一的解决方案。


归档时间:

查看次数:

96409 次

最近记录:

1 年,9 月 前