我的理解是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.