孤立的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
查询不同,这不会删除“远程”基于驱动程序的卷。