【发布时间】:2016-07-02 19:42:45
【问题描述】:
我可以用docker ps (-a) 列出所有容器,我可以用docker volumes ls 列出所有卷,当我检查volume 时,我可以看到name、driver 和mountpoint,但看不到它正在被使用的容器。
当我使用docker inspect <container> 时,我可以看到像这样的Mount 数据,例如:
"Mounts": [
{
"Name": "centos_db_symfony",
"Source": "/var/lib/docker/volumes/centos_db_symfony/_data",
"Destination": "/var/lib/mysql",
"Driver": "local",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
所以理论上,我可以编写一个循环遍历所有容器的脚本,以按名称匹配特定的volume。但是我通过docker-compose 运行了一些容器,并且没有将名称(就像现在在 v2 中一样)绑定到某些卷,所以它们在docker volume ls 列表中显示为 sha256,如下所示:
DRIVER VOLUME NAME
local 34009871ded5936bae81197247746b708c3ec9e9b9832b702c09736a90...etc
local centos_data
local centos_db_symfony
在这种情况下,34009871ded5(示例)是在我将卷命名为 docker-compose 和 centos_db_symfony 之前创建的。
问题
当docker-compose.yml 卷信息更新时,就像在这种情况下使卷命名并更新docker inspect <container> 中的信息时,历史会永远丢失还是我可以找出卷被哪个容器使用?如果是这样,是否也可以像这样恢复旧卷?
额外信息
docker-compose version 1.6.0, build d99cad6
Docker version 1.10.2, build c3959b1
【问题讨论】:
标签: docker docker-compose