도커 볼륨을 사용하는 컨테이너를 확인하는 방법은 무엇입니까?
제가 볼륨을 가지고 있고 이름이나 ID를 알고 있다고 가정해 보겠습니다.
볼륨을 사용하는 컨테이너(해당 이름 또는 ID)의 목록을 확인하려고 합니다.
이 정보를 검색하는 데 사용할 수 있는 명령은 무엇입니까?
저는 그것이 출력물에 저장될 수 있다고 생각했습니다.docker volume inspect <id>
명령이지만 마운트 지점 외에는 유용한 것이 없습니다."/var/lib/docker/volumes/<id>"
).
docker ps
볼륨별로 필터링하여 지정된 볼륨을 탑재하는 모든 컨테이너를 표시할 수 있습니다.
docker ps -a --filter volume=VOLUME_NAME_OR_MOUNT_POINT
참조: https://docs.docker.com/engine/reference/commandline/ps/ #http://filtering
아래 스크립트는 각 볼륨을 컨테이너와 함께 표시합니다.
#!/bin/sh
volumes=$(docker volume ls --format '{{.Name}}')
for volume in $volumes
do
echo $volume
docker ps -a --filter volume="$volume" --format '{{.Names}}' | sed 's/^/ /'
done
컨테이너별로 볼륨을 나열하는 것은 약간 까다롭기 때문에 독자에게는 연습이지만, 많은 컨테이너/볼륨이 없는 한 위의 내용으로 충분합니다.
이것은 누군가에게 도움이 된다면 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()
각 볼륨에 대해 이 스크립트는 볼륨이 여러 컨테이너에서 사용될 수 있다는 점을 염두에 두고 이 볼륨을 사용하는 컨테이너 목록을 출력합니다.
for v in $(docker volume ls --format "{{.Name}}")
do
containers="$(docker ps -a --filter volume=$v --format '{{.Names}}' | tr '\n' ',')"
echo "volume $v is used by $containers"
done
언급URL : https://stackoverflow.com/questions/42857575/how-to-determine-what-containers-use-the-docker-volume
'programing' 카테고리의 다른 글
동일한 모델의 다른 필드를 기반으로 한 장고 모델 필드 기본값 (0) | 2023.07.31 |
---|---|
상위 컨테이너로 SVG 스케일을 만들려면 어떻게 해야 합니까? (0) | 2023.07.31 |
Swift를 사용하여 버전 및 빌드 정보 가져오기 (0) | 2023.07.31 |
python: 유효한 UUID를 문자열에서 UUID로 변환하는 방법은 무엇입니까? (0) | 2023.07.31 |
쿼리 중 MySQL 서버에 대한 연결 끊김 (0) | 2023.07.26 |