关闭所有docker容器

关闭所有docker容器

我刚刚发现service docker stopUbuntu 18.04 不会关闭所有正在运行的容器。我无法再控制它们,但containerd-ship进程和容器内的所有内容仍在运行(但无法访问,可能是因为网络被移除了)。

此外,停止 containerd 不会改变任何事情,因为根据设计,这不会停止容器。

即使经过killall containerd-shim了如此严酷的考验,一些进程仍然在运行,比如gunicorngitlab、backuppc 和 Linux UML 实例

如何彻底关闭所有正在运行的容器?当前的行为导致我的系统在关闭时挂起。

更新:我刚刚看到我正在使用 repo(https://download.docker.com/linux/ubuntu) 来自 Kubernetes 教程(我还没用过)。该源提供了 containerd.io、docker-ce 和 docker-ce-cli 的专有版本

答案1

问题解决了。

重点是我有一个额外的存储库,直接来自docker(https://download.docker.com/linux/ubuntu) 带来了 containerd.io、docker-ce 和 docker-ce-cli 的专有版本。另一方面,Ubuntu 世界甚至不在我的考虑范围内/etc/apt/source.list

我现在已更新至 20.04 并使用来自 ubuntu universe 的原始 docker 软件包 (docker.io)。这运行良好,并按预期关闭。我确信这在 18.04 上也能正常工作,但我想通过切换 repo 来避免降级 docker。

答案2

在我的 Ubuntu 18.04 安装中,systemctl stop docker所有正在运行的容器都会关闭。systemctl start docker然后再次启动所有容器。我同意 BMitch 的观点,需要有关安装的更多信息才能诊断问题。

关闭所有正在运行的容器的另一种方法是:

docker ps -q | xargs docker stop

相关内容