即使根文件系统不存在,如何删除docker容器?

时间:2017-07-04 12:40:49

标签: docker

我有一个dead的容器,但我无法将其删除,如下所示。

如何删除它?或者我如何手动清理系统以将其删除?

:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
78b0dcaffa89        ubuntu:latest       "bash -c 'while tr..."   30 hours ago        Dead                                    leo.1.bkbjt6w08vgeo39rt1nmi7ock

:~$ docker rm --force 78b0dcaffa89
Error response from daemon: driver "aufs" failed to remove root filesystem for 78b0dcaffa89ac1e532748d44c9b2f57b940def0e34f1f0d26bf7ea1a10c222b: no such file or directory

3 个答案:

答案 0 :(得分:7)

需要重新启动它可能的Docker。

我在尝试删除容器时遇到了同样的错误消息,并重启了Docker帮助。

我正在运行版本17.12.0-ce-mac49(21995)

要重启Docker,请转到“偏好设置”,然后点击右上角的小炸弹。

在我的情况下,我让Docker在我的MacBook上运行扩展驱动器。退出睡眠模式后,扩展驱动器自动弹出(不合需要)。但是在再次安装驱动器后,我意识到需要重新启动Docker才能再次初始化所有内容。此时我能够移除容器(docker rm -f)。

也许它的情况不一样,但重启Docker是一件很有用的事情。

答案 1 :(得分:2)

在浏览相关问题时,我发现类似的"Driver aufs failed to remove root filesystem", "device or resource busy",并且在80%左右,有一个解决方案,据说使用docker stop cadvisor;然后docker rm [dead container]

编辑1:docker stop cadvisor 而不是docker stop deadContainerId

答案 2 :(得分:2)

正如错误消息所述,docker配置为使用AUFS作为存储驱动程序,但他们建议使用Overlay2,因为您可以在此链接上阅读: https://github.com/moby/moby/issues/21704#issuecomment-312934372

所以我将配置更改为使用Overlay2作为docker存储驱动程序。当我们这样做它从旧的存储驱动器中删除一切,这意味着我的"死"容器也不见了。

这不是我原始问题的解决方案,但结果已经完成。