如何删除所有docker卷?

时间:2016-04-16 11:51:16

标签: docker

如果我执行docker volume ls,我的卷列表如下:

DRIVER              VOLUME NAME
local               305eda2bfd9618266093921031e6e341cf3811f2ad2b75dd7af5376d037a566a
local               226197f60c92df08a7a5643f5e94b37947c56bdd4b532d4ee10d4cf21b27b319
...
...
local               209efa69f1679224ab6b2e7dc0d9ec204e3628a1635fa3410c44a4af3056c301

我想立刻删除所有卷。我该怎么办?

4 个答案:

答案 0 :(得分:141)

删除所有未使用的数据(包括没有容器的卷)的官方命令将使用docker 1.13

<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="ajaxscript.js"></script>
</head>
<body>
<button onclick="test()">Click me!</button>
<div id="result">Result</div>
</body>

如果您想单独限制卷,removing only unused volumes

docker system prune  

您还有docker volume prune docker image prune等:
请点击“Prune unused Docker objects”了解更多信息。

请参阅commit 86de7c0PR 26108

您可以在play-with-docker.com中看到它:

docker container prune

管理量的当前(码头前1.13)方式是PR 14242 and the docker volume command引入的,其中记录了2015年7月的in its comment

/ # docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
1296a5e47ef3        hello-world         "/hello"            7 seconds ago       Exited (0) 6 seconds ago                       prickly_poincare

/ # docker system  prune
WARNING! This will remove:
        - all stopped containers
        - all volumes not used by at least one container
        - all networks not used by at least one container
        - all dangling images
Are you sure you want to continue? [y/N] y
Deleted Containers:
1296a5e47ef3ab021458c92ad711ad03c7f19dc52f0e353f56f062201aa03a35

答案 1 :(得分:16)

2017年编辑: 这个答案是在16年4月16日给出的,现在已经过时了,并且只对1.13之前的泊坞版本更正 请使用@VonC的答案,现在标记为正确

要删除未使用的卷,可以使用内置docker volume rm命令。 rm命令还会删除/var/lib/docker/volumes中不是卷的任何目录,因此请确保您没有在其中放置任何要保存的内容:
命令列出卷,比你的略有:

$ docker volume ls -qf dangling=true

清理:

$ docker volume rm $(docker volume ls -qf dangling=true)

有关ls here的更多详情,关于rm here

答案 2 :(得分:2)

这是我发现有用的内容:https://github.com/chadoe/docker-cleanup-volumes

  

Shellscript删除/ var / lib / docker / volumes和/ var / lib / docker / vfs / dir中的孤立docker卷   Docker版本1.4.1高达1.11.x

它基本上清除了任何孤立/悬空卷,但它包含一个--dry-run,但它也记录了一些包含docker的命令(在prev注释中引用)

  

关于Docker 1.9及更高版本的注意事项

     

要删除Docker 1.9及更高版本中的孤立卷,您还可以使用内置的docker volume命令代替此docker-cleanup-volumes脚本。内置命令还会删除/ var / lib / docker / volumes中不是卷的任何目录,因此请确保您没有在其中放置任何要保存的内容:

     

列表:

$ docker volume ls -qf dangling=true
  

清理:

$ docker volume rm $(docker volume ls -qf dangling=true)
  

或者,更好地处理无操作,但特定于Linux:

$ docker volume ls -qf dangling=true | xargs -r docker volume rm

答案 3 :(得分:1)

要回答这个问题并借用Marc,这有效:

$ docker volume rm $(docker volume ls -qf dangling=true | xargs)