[英]Orphaned Docker mounted host volumes?
我只是检查了我的/ var / lib / docker / volumes文件夹,发现它正在破坏名为Docker UUID的文件夹,每个文件夹都包含一个config.json文件,其中的内容沿着
{"ID":"UUID","Path":"/path/to/mounted/volume","IsBindMount":true,"Writable":true}
哪里
/path/to/mounted/volume
是主机上的文件夹的路径,该文件夹在某个时刻使用-v开关安装到docker容器上。 我有这样的文件夹可以追溯到我使用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
查询不同,这不会删除基于“远程”驱动程序的卷。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.