docker volume prune 不删除未使用的卷

aaa*_*aaa 4 docker-volume

我的理解是docker volume prune应该删除不再与容器关联的卷。

本地我有

$ docker volume ls | head -n 2
DRIVER    VOLUME NAME
local     0d4cd922a4ed3e970726b1edb860c7dda3ae1e47f812585d9517d512ae70d5cf
Run Code Online (Sandbox Code Playgroud)

我确认它没有关联的容器通过

$ docker ps -a --filter volume=0d4cd922a4ed3e970726b1edb860c7dda3ae1e47f812585d9517d512ae70d5cf
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
Run Code Online (Sandbox Code Playgroud)

因此我预计这卷会被删除,但是唉

$ docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B

$ docker volume ls | head -n 2
DRIVER    VOLUME NAME
local     0d4cd922a4ed3e970726b1edb860c7dda3ae1e47f812585d9517d512ae70d5cf
Run Code Online (Sandbox Code Playgroud)

我缺少什么?

小智 15

这可能是 docker cli github 存储库中提到的问题: https: //github.com/docker/cli/issues/4028

显然,docker 版本 23 在运行时不再删除匿名卷(就像你的卷一样)docker volume prune。要获得原始行为,您可以使用docker volume prune --filter all=1.

  • dockervolume prune -a 就是答案。根据文档选项 -a“删除所有未使用的卷,而不仅仅是匿名卷” (2认同)