孤立的docker安装主机卷?

我刚刚检查了我的/ var / lib / docker /卷文件夹,发现它是名为Docker UUID的文件夹,每个文件夹都包含一个config.json文件,其内容沿着

{"ID":"UUID","Path":"/path/to/mounted/volume","IsBindMount":true,"Writable":true} 

哪里

 /path/to/mounted/volume 

是在某个时刻在-v开关上装载到docker容器的主机上的文件夹的path。 我有这样的文件夹可以追溯到我的实验开始与Docker,即大约3个星期前。

有问题的集装箱已经停了很久,所以我看不到这些物品还没有过期。 这引出了问题 – 剩下的我看到一个错误,或者需要手动抛弃/ var / lib / docker / volumes中的这些条目吗?

对于Docker 1.9和以上,有一个原生的方式:

列出所有孤立的卷

$ docker volume ls -qf dangling=true

消除所有的人

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

从Docker用户指南:

如果删除装入卷的容器(包括初始dbdata容器)或后续容器db1和db2,则不会删除卷。 要从磁盘删除卷,必须显式调用docker rm -v对最后一个容器的引用。 这允许您升级或有效地迁移容器之间的数据卷。 – 来源

这是有意的行为,以避免意外的数据丢失。 您可以使用像docker-cleanup-volumes这样的工具清理未使用的卷。

对于Docker 1.13+和ce / ee 17+版本号,请使用volume prune命令

 docker volume prune 

dangling=true查询不同,这不会删除“远程”基于驱动程序的卷。

Interesting Posts