我可以使用docker ps (-a)
列出所有容器,我可以列出docker volumes ls
的所有卷,当我检查volume
时,我可以看到name
,{{1 }和driver
,但不是它正在使用的容器。
当我使用mountpoint
时,我可以看到像这样的Mount数据:
docker inspect <container>
所以从理论上讲,我可以编写一个循环遍历所有容器的脚本,以便按名称匹配特定的"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
运行了一些容器,并没有将某个名称(就像现在可能在v2中)绑定到某些卷,所以它们在docker-compose
列表中显示为sha256,就像这样:
docker volume ls
在这种情况下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>
答案 0 :(得分:10)
从Docker v1.11开始,您可以按ps
过滤volume
!很遗憾,previous versions无法使用此功能。
以下是如何使用它:
docker ps -f "volume=/var/lib/mysql"
或
docker ps -f "volume=centos_db_symfony"