当前位置: 首页 > 知识库问答 >
问题:

如何删除docker容器的docker卷?

萧宁
2023-03-14

我有很多运行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"
    }
]

手动停止并删除注册表:2容器后,卷仍然存在。

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

共有3个答案

湛财
2023-03-14

要清理我使用的所有匿名卷:

docker volume ls | awk '{if (length($2)==64 && $2!~/-/ && $2!~/_/) print $2}' | xargs -L1 docker volume rm

如果您想知道为什么会存在这些随机卷,请在此处阅读更多内容

张子墨
2023-03-14

您可以手动删除未使用的卷:

docker volume rm c80fc65a79039d70cf54b3af3ab66b378dec42d0757928ae94277b197d8d8104

或删除所有未使用的卷

docker volume prune

删除所有未使用的本地卷。未使用的本地卷是指未被任何容器引用的卷

萧树
2023-03-14

您不需要自己确定卷名。实际上,这里有多种选择。

参考:文件。docker。com:清理(-rm)

如果您设置了--rm标志,Docker还会在容器被删除时删除与容器关联的匿名卷。这类似于运行docker rm-v my-容器。只有指定的没有名称的卷才会被删除。例如,在运行时:

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

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

如果确实要获取容器的卷,可以使用代码

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>
 类似资料:
  • 问题内容: 此问题与我是否应该担心多余的,未运行的Docker容器有关?。 我想知道如何删除旧容器。将让你删除一个,但我有很多了。没有提供选择选项(如全部,或按图像名称)。 也许有一个存储这些容器的目录,可以方便地手动删除它们? 问题答案: 从Docker 1.13.x开始, 您可以使用Docker容器prune: 这将删除所有停止的容器,并且应在所有平台上以相同的方式工作。 还有一个Docker

  • 问题内容: 如果我有一个数据卷容器,并且我停止并删除了该容器(没有-v标志将删除该卷),是否仍然可以使用 孤立 卷启动一个新的数据卷容器?还是数据丢失了? 问题答案: 如果删除带但不带标志的容器,则主机上目录中的数据仍然可用。 要在新的Docker容器中使用孤立的卷,您可以从主机上挂载该目录,也可以将新的空卷附加到您的Docker容器中,然后同步数据。

  • 问题内容: 我无法删除失效的容器,重新启动Docker服务后,它将再次出现。 然后 然后,当我运行docker ps -a时,没有显示docker容器。 但是,当我重新启动docker服务时: 然后再次运行docker ps -a: 问题答案: 最有可能的是,当守护程序尝试清理容器时发生错误,并且他现在陷入了“僵尸”状态。 恐怕您唯一的选择是手动清理它: 哪里是你的驱动程序的名称(,,,或)。

  • 我希望停止并移除正在运行的容器。 总回收空间:0B返回结果 为什么会这样

  • 我想删除这两个图像 如何走出圈子?

  • 我记得用过 几个月前没有问题地链接命令,但现在这不起作用了,我得到了以下输出: 什么改变了?如何在一行中删除所有Docker运行容器?如果有用的话,我正在Windows ;10上使用Docker for Windows(本机与Hyper-V一起使用,而不是与VirtualBox一起使用),我使用的命令在以前的Windows 8 Docker工具箱安装中运行良好。