如果我执行docker volume ls
,我的卷列表如下:
DRIVER VOLUME NAME
local 305eda2bfd9618266093921031e6e341cf3811f2ad2b75dd7af5376d037a566a
local 226197f60c92df08a7a5643f5e94b37947c56bdd4b532d4ee10d4cf21b27b319
...
...
local 209efa69f1679224ab6b2e7dc0d9ec204e3628a1635fa3410c44a4af3056c301
我想立刻删除所有卷。我该怎么办?
答案 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”了解更多信息。
您可以在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)
答案 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)