如何删除所有 docker 卷?

新手上路,请多包涵

如果我做一个 docker volume ls ,我的卷列表是这样的:

 DRIVER              VOLUME NAME
local               305eda2bfd9618266093921031e6e341cf3811f2ad2b75dd7af5376d037a566a
local               226197f60c92df08a7a5643f5e94b37947c56bdd4b532d4ee10d4cf21b27b319
...
...
local               209efa69f1679224ab6b2e7dc0d9ec204e3628a1635fa3410c44a4af3056c301

我想一次删除我所有的卷。我该怎么做?

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

阅读 440
2 个回答

删除所有未使用数据(包括没有容器的卷)的官方命令将使用 docker 1.13

 docker system prune

如果您想仅限制卷,则仅 删除未使用的卷

 docker volume prune

您还有 docker image prunedocker container prune 等:

在“ 修剪未使用的 Docker 对象”中查看更多信息。

请参阅 提交 86de7c0PR 26108。

您可以在 play-with-docker.com 中看到它的实际效果:

 / # docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
1296a5e47ef3        hello-world         "/hello"            7 seconds ago       Exited (0) 6 seconds ago                       prickly_poincare

/ # docker system  prune
WARNING! This will remove:
        - all stopped containers
        - all volumes not used by at least one container
        - all networks not used by at least one container
        - all dangling images
Are you sure you want to continue? [y/N] y
Deleted Containers:
1296a5e47ef3ab021458c92ad711ad03c7f19dc52f0e353f56f062201aa03a35


当前(docker 1.13 之前)管理卷的方式是通过 PR 14242 和 docker volume 命令引入的,该命令 在 2015 年 7 月的评论 中记录:

 docker volume rm $(docker volume ls -q --filter dangling=true)

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

2017 年编辑:此答案于 16 年 4 月 16 日给出,现在已过时,仅适用于 1.13 之前的 docker 版本请使用来自@VonC 的答案,现在它被标记为正确

要删除未使用的卷,您可以使用内置 volume rm 命令。 rm 命令还会删除 /var/lib/docker/volumes 中不是卷的任何目录,因此请确保您没有在其中放置任何要保存的内容:

列出卷的命令,比你的稍微正确:

 $ docker volume ls -qf dangling=true

清理:

 $ docker volume rm $(docker volume ls -qf dangling=true)

更多关于 ls 详细信息,关于 rm 的信息

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

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