Docker Compose下线失败,提示“权限被拒绝”。

14

在运行docker-compose stop时,无法停止Docker镜像,并显示以下错误:

ERROR: for nginx cannot stop container: 5f5ed6d2110a0d845508ede160d8196d3e01f1d677e22e4944adc8c984800cff: Cannot kill container 5f5ed6d2110a0d845508ede160d8196d3e01f1d677e22e4944adc8c984800cff: Unknown error after kill: docker-runc did not terminate sucessfully: container_linux.go:393: signaling init process caused "Permission Denied": unknown

这些镜像仍在正常运行,只是无法重新启动。我在Ubuntu上运行docker-compose


你使用 sudo 进行测试吗? - Benyamin Jafari
是的,我用sudo测试了,但仍然出现相同的错误。 - Rijo Simon
这里有一个非常好的清晰答案:https://dev59.com/f1UM5IYBdhLWcg3wQObw#49573618 - lambfrier
5个回答

21

我通过运行以下命令来解决问题:

sudo killall docker-containerd-shim

然后docker-compose down开始对我起作用了。

我在这个错误报告中找到了解决方案,似乎涉及到将修复runc代码的补丁反向移植。

编辑

看起来,在我的Ubuntu 18.04安装中,这些问题的根本原因是Docker的快照映像。我完全删除了快照映像,并使用https://get.docker.io重新安装了Docker,现在我不再遇到这些问题。与此同时,我上面的回答对我来说是一个解决方法。


12
我认为现在是containerd-shim,至少在我的版本中是这样的。 - serkef
请查看 https://dev59.com/f1UM5IYBdhLWcg3wQObw#49573618。Eddy的解决方案对我在18.10中也有效。snap remove docker。 - serkef
确认过了,通过snap安装的docker已知存在一些小问题和bug,这些问题并不影响其他安装方法。我之前也遇到了"permission denied"错误,不得不卸载docker引擎和docker compose。通过以下链接重新安装引擎,并使用docker compose插件,问题得以解决。https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository - Victor

19

不知怎么地,这对我起了作用。

$ sudo killall containerd-shim

非常感谢,这个救了我一命!! - NotTheWaquar

9
2021年:在我的情况下,我正在使用
sudo aa-remove-unknown

然后,运行

sudo docker-compose down

接着,应用程序成功下架。


这对我来说甚至不需要 sudo 也能工作:docker-compose down - gorodezkiy

0

我曾经遇到过同样的问题,解决方法是杀掉所有容器,删除所有镜像和数据卷,然后重新开始。

如果你不介意删除所有数据卷和未使用的镜像,可以尝试这两个命令:

sudo service docker restart
docker system prune --all --volumes

0
有这样一个解决方案。
停止并重新启动Docker服务。
sudo systemctl stop docker.socket
sudo systemctl stop docker
sudo systemctl restart docker

检查后 -> docker ps
如果无法删除容器,请尝试 -> docker container rm container_name --force

端口可能没有被删除。这会导致冲突。
查找已使用的端口PID -> sudo lsof -i:port 并杀死 sudo kill -9 PID


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