Docker 正在大量使用,但没有任何 Docker 容器

新手上路,请多包涵

编辑(2/19/21):自从我多年前提出这个原始问题以来已经过去了很多时间,从那时起我看到了一系列活动。我重新选择了一个我认为与解决此问题的最本地化和最安全的选项(通常与 docker-compose 相关联)一致的答案。虽然 docker 确实引入了 prune 命令,但这通常是一个危险的操作,我会谨慎使用它,因为您可能会无意中影响您机器上的其他应用程序或设置


我一直在使用 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

对于其中相当大的一部分。如果我一开始没有任何容器,这些卷是如何使用的?

原文由 Tkwon123 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 468
2 个回答

您可以使用这些函数来粗暴地删除与 Docker 相关的所有内容:

 removecontainers() {
    docker stop $(docker ps -aq)
    docker rm $(docker ps -aq)
}

armageddon() {
    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 重新加载它们。此外,您可以将它们复制粘贴到控制台,然后(无论您之前为准备好功能而采取的选项)运行:

 armageddon

它对于一般的 Docker 清理也很有用。请记住,这还将删除您的图像,不仅是您的容器(无论是否运行)和任何类型的卷。

原文由 David González Ruiz 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题