假设我有一个卷,我知道它的名字或ID。
我想确定使用该卷的容器列表(它们的名称或ID)。
我可以使用哪些命令来检索此信息?
我认为它可以存储在docker volume inspect <id>
命令的输出中,但它除了挂载点("/var/lib/docker/volumes/<id>"
)之外没有任何其他用处。
答案 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()