如何确定哪些容器使用docker卷?
假设我有一个卷,我知道它的名称或id 我想确定使用卷的容器列表(它们的名称或ID) 我可以使用什么命令来检索此信息如何确定哪些容器使用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的建议
我原以为它可以存储在
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