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

时间:2017-03-17 12:27:55

标签: docker docker-volume docker-container

假设我有一个卷,我知道它的名字或ID。

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

我可以使用哪些命令来检索此信息?

我认为它可以存储在docker volume inspect <id>命令的输出中,但它除了挂载点("/var/lib/docker/volumes/<id>")之外没有任何其他用处。

2 个答案:

答案 0 :(得分:35)

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

docker ps -a --filter volume=VOLUME_NAME_OR_MOUNT_POINT

参考:https://docs.docker.com/engine/reference/commandline/ps/#filtering

答案 1 :(得分:0)

这与 jwodder 建议有关,如果对某人有帮助的话。 它基本上提供了所有卷的摘要,以防您有超过几卷并且不确定哪一卷。

import io
import subprocess
import pandas as pd


results = subprocess.run('docker volume ls', capture_output=True, text=True)

df = pd.read_csv(io.StringIO(results.stdout),
                 encoding='utf8',
                 sep="    ",
                 engine='python')

for i, row in df.iterrows():
    print(i, row['VOLUME NAME'])
    print('-' * 20)
    cmd = ['docker', 'ps', '-a', '--filter', f'volume={row["VOLUME NAME"]}']
    print(subprocess.run(cmd,
           capture_output=True, text=True).stdout)
    print()