Fla*_*uff 8 docker docker-volume
在 docker 文档中,它说了以下内容:
docker volume prune
=== 删除所有未使用的本地卷
为了测试这一点,我使用 docker hub 的官方最新映像设置了一个 MongoDb 容器。这样做会在幕后创建 2 个卷,容器可能需要这些卷来存储数据。
现在运行时docker volume ls
,我可以看到两个具有随机名称的卷。
假设我有多个容器,其中的卷使用随机名称。现在很难知道其中哪些仍在使用,所以我希望docker volume prune
在这里提供帮助。
因此,我执行了该命令,希望docker volume prune
在我的容器启动并使用 MongoDb 运行时不会删除任何内容。但实际发生的情况是,我的所有卷都被删除了。之后我的容器关闭并且无法重新启动。
我多次尝试重新创建此命令,即使每次容器运行时,该命令也会删除所有卷。
任何人都可以解释这种行为吗?
更新:
使用 MongoDB 映像的容器 ID 执行以下命令会显示 2 个卷:
docker inspect -f '{{ .Mounts }}' *CONTAINER_ID*
Run Code Online (Sandbox Code Playgroud)
因此,根据我的理解,docker 知道这些卷和容器属于同一组。
当我要求 docker 显示悬空卷时,它再次显示相同的卷:
docker volume ls --filter dangling=true
Run Code Online (Sandbox Code Playgroud)
因此,当它们悬空时,修剪命令将它们删除对我来说是有意义的。但我显然有与我的容器一起使用的卷,所以我不清楚。
小智 13
您可以删除所有现有容器,然后删除所有卷。
docker rm -vf $(docker ps -aq) && docker volume prune -f
Run Code Online (Sandbox Code Playgroud)
如果您只想删除未使用的卷,请尝试
docker volume prune
Run Code Online (Sandbox Code Playgroud)
或者
docker volume rm $(docker volume ls -qf dangling=true)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22711 次 |
最近记录: |