programing

도커 1.9+에서 명명된 볼륨의 내용을 나열하는 방법은 무엇입니까?

css3 2023. 8. 23. 21:55

도커 1.9+에서 명명된 볼륨의 내용을 나열하는 방법은 무엇입니까?

도커 1.9가 명명된 볼륨을 추가했기 때문에..

docker volume create --name postgres-data

docker volume ls 

그리고 나는.

local               postgres-data

지금까지는 모두 좋습니다.

그러면 명명된 볼륨에 무엇이 있는지 어떻게 확인할 수 있습니까?호스트 시스템에서 CD로 저장할 수 있는 방법이 있습니까?마운트된 호스트 디렉토리처럼?

docker run --rm -i -v=postgres-data:/tmp/myvolume busybox find /tmp/myvolume

설명:볼륨의 파일을 볼 수 있는 도구를 사용하여 최소 컨테이너를 만들고(바쁨 상자), 이름이 지정된 볼륨을 컨테이너의 디렉토리에 마운트합니다(v=postgres-data:/tmp/myvolume), 볼륨의 파일을 나열합니다(find /tmp/myvolume. 목록 작성이 완료되면 용기를 제거합니다(--rm).

달릴 수 있습니다docker volume inspect postgres-data

보고있다Mountpoint결과의 일부

따라서 소스 매개 변수가 호스트 디렉토리를 가리킬 수 있습니다./var/lib/docker/volumes/[volume_name]/_data디렉토리

실행하면 도커가 볼륨을 저장하는 위치를 확인할 수 있습니다.docker volume inspect <volume>.

하지만 주의할 점이 있습니다.Mac 및 Windows에서는 볼륨의 내용을 직접 볼 수 없습니다.이러한 문제는 Containzeration이 Linux의 기본 기능이기 때문에 Docker가 실제로 Linux VM을 실행하여 컨테이너화할 수 있기 때문에 발생합니다.따라서 표시되는 경로는 실제로는 호스트 시스템이 아닌 VM 내부의 경로입니다.

다른 답변에 언급된 방법을 사용하여 이러한 볼륨에 액세스하거나(내용을 보기 위해 사용 후 삭제 컨테이너 만들기) 직접 액세스할 수 있습니다.

Mac용

Mac의 경우 다음을 사용할 수 있습니다.screenVM에 액세스하려면 다음과 같이 하십시오.

# This path can be slightly different on your system
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

그리고 일단 그곳에 도착하면, 당신은 다음 경로로 이동할 수 있습니다.docker volume inspect당신에게 주었습니다.

Windows의 경우

도커 데스크톱 및 WSL2 포함

다음으로 이동\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes윈도우즈 탐색기에서

여기 한 가지 아이디어가 있습니다...

docker run -it --name admin -v postgres-data:/var/lib/postgresql/data ubuntu

그리고 나서 대화형 쉘에서.

ls /var/lib/postgresql/data 

더 좋은 아이디어 환영!

아니면 jq나 새 컨테이너필요하지 않습니다.

cd디렉터리:

cd $(docker volume inspect <volume name> | grep Mountpoint | cut -d\" -f 4)

디렉토리의 내용을 봅니다.

ls -las $(docker volume inspect <volume name> | grep Mountpoint | cut -d\" -f 4)

훨씬 더 좋아요!모든 볼륨의 내용 보기:__

for i in  `docker volume ls -q`; do echo volume: ${i}; \
ls -las $(docker volume inspect $i | grep Mountpoint | cut -d\" -f 4); \
done

무언가를 빨리 찾아야 할 때 항상 그것을 사용합니다.

포함 *jq:

$ sudo ls -l $(docker volume inspect VOLUME_NAME | jq -r '.[0].Mountpoint')

*아직 설치하지 않은 경우 설치 방법에 대한 자세한 내용은 jqdoc 페이지를 확인하십시오(PACKAGE_MANAGER install jq).

이 편리한 기능을 사용하여 볼륨의 내용을 나열합니다.

dvolume() {
  local volume volumes_to_list=${1:-$(docker volume ls --quiet)}
  for volume in $volumes_to_list; do
    sudo ls -lRa "$(docker volume inspect --format '{{ .Mountpoint }}' "$volume")"
    echo
  done
}

두 가지 방법으로 함수를 호출할 수 있습니다.

$ dvolume           # for each volume, list its content
$ dvolume <volume>  # list <volume>'s content

언급URL : https://stackoverflow.com/questions/34803466/how-to-list-the-content-of-a-named-volume-in-docker-1-9