docker正在使用中,但没有docker集装箱

我一直在使用Docker 1.9.1删除Docker卷时遇到问题。

我已经删除了所有停止的容器,以便docker ps -a返回空。

当我使用docker volume ls ,我得到了一大堆docker容器。

 docker volume ls DRIVER VOLUME NAME local a94211ea91d66142886d72ec476ece477bb5d2e7e52a5d73b2f2f98f6efa6e66 local 4f673316d690ca2d41abbdc9bf980c7a3f8d67242d76562bbd44079f5f438317 local eb6ab93effc4b90a2162e6fab6eeeb65bd0e4bd8a9290e1bad503d2a47aa8a78 local 91acb0f7644aec16d23a70f63f70027899017a884dab1f33ac8c4cf0dabe5f2c local 4932e2fbad8f7e6246af96208d45a266eae11329f1adf176955f80ca2e874f69 local 68fd38fc78a8f02364a94934e9dd3b5d10e51de5b2546e7497eb21d6a1e7b750 local 7043a9642614dd6e9ca013cdf662451d2b3df6b1dddff97211a65ccf9f4c6d47 #etc x 50 

由于这些卷都不包含任何重要内容,因此我尝试使用docker volume rm $(docker volume ls -q)清除所有卷。

在这个过程中,大部分被删除,但我回来了:

 Error response from daemon: Conflict: volume is in use Error response from daemon: Conflict: volume is in use Error response from daemon: Conflict: volume is in use Error response from daemon: Conflict: volume is in use Error response from daemon: Conflict: volume is in use 

对于他们相当大的一部分。 如果我没有任何容器,那么这些容器是如何使用的呢?

这里的gonsales!

您可以使用这些function残酷地删除所有docker相关的一切

 removecontainers() { docker stop $(docker ps -aq) docker rm $(docker ps -aq) } armaggedon() { removecontainers docker network prune -f docker rmi -f $(docker images --filter dangling=true -qa) docker volume rm $(docker volume ls --filter dangling=true -q) docker rmi -f $(docker images -qa) } 

你可以把它们添加到你的~/Xrc文件中,其中X是你的shell解释器( ~/.bashrc如果你使用的是bash),并且通过执行source ~/Xrc来重新加载它们。 此外,你可以复制粘贴到控制台,然后(不pipe你之前拿到的function准备就绪),运行:

armaggedon

我希望它有帮助! 这对于一般的docker清理也是有用的。 请记住,这也将删除您的图像,不仅是你的容器(无论是否运行)和你的任何types的卷。

我很确定这些卷实际上安装在您的系统上。 看看/ proc / mounts,你会看到他们在那里。 您可能需要sudo umount <path>sudo umount -f -n <path> 。 您应该能够在/ proc / mounts中或通过docker volume inspect获取装入的path