如何确定哪些容器使用docker卷?

如何确定哪些容器使用docker卷?,docker,docker-volume,docker-container,Docker,Docker Volume,Docker Container,假设我有一个卷,我知道它的名称或id 我想确定使用卷的容器列表(它们的名称或ID) 我可以使用什么命令来检索此信息 我原以为它可以存储在docker volume inspect命令的输出中,但除了挂载点(“/var/lib/docker/volumes/”)之外,它没有给我任何有用的东西。docker ps可以按卷过滤以显示挂载给定卷的所有容器: docker ps -a --filter volume=VOLUME_NAME_OR_MOUNT_POINT 参考资料:这与jwodder的建议

假设我有一个卷,我知道它的名称或id

我想确定使用卷的容器列表(它们的名称或ID)

我可以使用什么命令来检索此信息


我原以为它可以存储在
docker volume inspect
命令的输出中,但除了挂载点(
“/var/lib/docker/volumes/”
)之外,它没有给我任何有用的东西。

docker ps
可以按卷过滤以显示挂载给定卷的所有容器:

docker ps -a --filter volume=VOLUME_NAME_OR_MOUNT_POINT
参考资料:

这与jwodder的建议有关,如果对某人有帮助的话。 它基本上给出了所有卷的摘要,以防您有多个卷,并且不确定哪个卷是哪个卷

导入io
导入子流程
作为pd进口熊猫
结果=子流程.run('docker volume ls',capture\u output=True,text=True)
df=pd.read\u csv(io.StringIO(results.stdout),
encoding='utf8',
sep=”“,
引擎(python)
对于i,df.iterrows()中的行:
打印(第i行[“卷名])
打印('-'*20)
cmd=['docker','ps','-a','-filter',f'volume={row[“volume NAME”]}]
打印(子流程运行(cmd,
捕获(输出=True,文本=True).stdout)
打印()

可能有一种更直接的方法,但您可能只需迭代所有容器(即
docker ps-a
的输出),然后查看
docker inspect
的相关部分。不确定区别,但卷仅被引用为
。装入
,而不是
。配置卷
(使用
docker-container-inspect
)将不会与此筛选器一起显示。如果您在此处使用相反的筛选器,则此筛选器也会对卷ls起作用:
docker-volume-ls--filter-name=container\u-name