如何删除(已删除)docker-container的docker-volume?

阿尔菲的态度

我有运行大量Docker容器的测试。每个都有一个音量。

我怎么知道需要删除的卷名?

例如:

~ docker run -d registry:2 
~ docker volume inspect c80fc65a79039d70cf54b3af3ab66b378dec42d0757928ae94277b197d8d8104
[
    {
        "CreatedAt": "2020-08-14T11:33:50Z",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/c80fc65a79039d70cf54b3af3ab66b378dec42d0757928ae94277b197d8d8104/_data",
        "Name": "c80fc65a79039d70cf54b3af3ab66b378dec42d0757928ae94277b197d8d8104",
        "Options": null,
        "Scope": "local"
    }
]

手动停止并卸下registry:2容器后,该卷仍然存在。

我不想删除所有卷,因为其中一些仍在使用中。

史密斯

您无需自己确定卷名。实际上,您在这里有多个选项。

如果要清理,可以使用--rm标志docker run

参考:docs.docker.com:清理(--rm)

如果设置--rm标志,则在删除容器时,Docker也将删除与该容器关联的匿名卷。这类似于运行docker rm -v my-container。仅删除没有名称的指定卷。例如,运行时:

使用docker system prune --volumes命令清除至少一个容器未使用的所有卷

参考:docs.docker.comdocker系统修剪

删除所有未使用的容器,网络,映像(悬空的和未引用的)以及卷(可选)。

获取助理卷

如果您真的想获取容器的体积,可以使用代码段

docker inspect -f '{{ .Name }}{{ printf "\n" }}{{ range .Mounts }}{{ printf "\n\t" }}{{ .Type }} {{ if eq .Type "bind" }}{{ .Source }}{{ end }}{{ .Name }} => {{ .Destination }}{{ end }}{{ printf "\n" }}' <continaer-id>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章