docker volume ls 명령어를 사용하여 볼륨을 나열하고 필터링하는 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker volume ls 명령어를 효과적으로 사용하여 Docker 볼륨을 관리하는 방법을 배우게 됩니다. 먼저 작업할 샘플 볼륨을 생성하는 것으로 시작합니다. 그런 다음 시스템에 있는 모든 기존 볼륨을 나열하는 방법을 알아보겠습니다.

나열하는 방법을 바탕으로 이름 및 드라이버와 같은 기준과 dangling 상태를 기준으로 볼륨을 필터링하는 방법을 살펴보겠습니다. 마지막으로, 가독성을 높이고 특정 정보를 추출하기 위해 docker volume ls 명령의 출력을 형식화하는 방법을 배우게 됩니다.

샘플 볼륨 생성

이 단계에서는 Docker 볼륨을 생성하는 방법을 배우겠습니다. 볼륨은 Docker 컨테이너에서 생성되고 사용되는 데이터를 지속적으로 유지하는 데 선호되는 방법입니다. 바인드 마운트 (bind mount) 는 호스트 머신의 디렉토리 구조에 의존하는 반면, 볼륨은 Docker 에 의해 완전히 관리됩니다.

볼륨을 생성하려면 docker volume create 명령을 사용합니다. myvolume이라는 간단한 볼륨을 생성해 보겠습니다.

docker volume create myvolume

생성이 성공하면 볼륨의 이름이 콘솔에 출력되는 것을 확인할 수 있습니다.

이제 another_volume이라는 다른 볼륨을 생성해 보겠습니다.

docker volume create another_volume

이제 Docker 컨테이너에서 영구 데이터를 저장하는 데 사용할 수 있는 두 개의 볼륨을 생성했습니다.

모든 볼륨 나열

이 단계에서는 시스템에 존재하는 모든 Docker 볼륨을 나열하는 방법을 배우겠습니다. 이는 사용 가능한 볼륨을 확인하고 관리하는 데 유용합니다.

모든 볼륨을 나열하려면 docker volume ls 명령을 사용합니다. 이 명령은 드라이버 (driver) 및 이름을 포함하여 모든 볼륨의 목록을 표시합니다.

docker volume ls

이전 단계에서 생성한 볼륨 (myvolumeanother_volume) 이 시스템에 존재할 수 있는 다른 볼륨과 함께 출력에 나열되는 것을 확인할 수 있습니다. 출력에는 일반적으로 DRIVERVOLUME NAME이 포함됩니다.

볼륨의 기본 드라이버는 일반적으로 local이며, 이는 볼륨이 Docker 가 실행 중인 로컬 머신에 저장됨을 의미합니다.

이름 및 드라이버로 볼륨 필터링

이 단계에서는 이름과 드라이버를 기반으로 Docker 볼륨 목록을 필터링하는 방법을 배우겠습니다. 이는 많은 볼륨이 있고 특정 볼륨을 찾고 싶을 때 유용합니다.

docker volume ls 명령과 함께 --filter 플래그를 사용하여 출력을 필터링할 수 있습니다. 필터는 key=value 쌍을 사용합니다.

이름으로 필터링하려면 name 키를 사용합니다. myvolume이라는 볼륨을 필터링해 보겠습니다.

docker volume ls --filter name=myvolume

출력에 myvolume만 표시되어야 합니다.

이제 드라이버로 필터링해 보겠습니다. 볼륨을 생성할 때 기본 드라이버를 사용했으므로 드라이버는 local입니다. local 드라이버를 사용하는 볼륨을 필터링해 보겠습니다.

docker volume ls --filter driver=local

이 명령은 local 드라이버를 사용하는 모든 볼륨을 나열해야 하며, 여기에는 myvolumeanother_volume이 모두 포함되어야 합니다.

필터를 결합할 수도 있습니다. 예를 들어, local 드라이버를 사용하는 myvolume이라는 볼륨을 필터링하려면 다음을 사용할 수 있습니다.

docker volume ls --filter name=myvolume --filter driver=local

이렇게 하면 다시 myvolume만 표시됩니다.

댕글링 상태로 볼륨 필터링

이 단계에서는 Docker 볼륨을 "댕글링 (dangling)" 상태를 기반으로 필터링하는 방법을 배우겠습니다. 댕글링 볼륨은 현재 어떤 컨테이너에도 연결되지 않은 볼륨입니다. 이러한 볼륨은 불필요하게 디스크 공간을 소비할 수 있습니다.

댕글링 볼륨을 필터링하려면 --filter dangling=true 플래그를 사용합니다.

먼저, 컨테이너를 생성하고 볼륨 중 하나를 연결해 보겠습니다. ubuntu 이미지를 사용합니다. 로컬에 ubuntu 이미지가 없으면 Docker 가 자동으로 가져옵니다.

docker run -d --name mycontainer -v myvolume:/app ubuntu sleep 3600

이 명령은 분리 모드 (-d) 로 mycontainer라는 컨테이너를 실행하고, myvolume을 컨테이너 내부의 /app 디렉토리에 마운트 (-v myvolume:/app) 하고, ubuntu 이미지를 사용하며, 컨테이너를 한 시간 동안 실행 상태로 유지합니다 (sleep 3600).

이제 모든 볼륨을 다시 나열해 보겠습니다.

docker volume ls

myvolumeanother_volume이 모두 표시됩니다. myvolume은 현재 mycontainer에서 사용 중입니다. another_volume은 어떤 컨테이너에도 연결되어 있지 않으므로 댕글링 볼륨입니다.

이제 댕글링 볼륨을 필터링해 보겠습니다.

docker volume ls --filter dangling=true

어떤 실행 중인 컨테이너에도 연결되어 있지 않으므로 출력에 another_volume이 나열되어야 합니다.

댕글링되지 않은 볼륨 (즉, 컨테이너에 연결된 볼륨) 을 보려면 --filter dangling=false를 사용할 수 있습니다.

docker volume ls --filter dangling=false

이렇게 하면 myvolume이 표시됩니다.

마지막으로, 생성한 컨테이너를 중지하고 제거해 보겠습니다.

docker stop mycontainer
docker rm mycontainer

이제 댕글링 볼륨을 다시 나열하면 다음과 같습니다.

docker volume ls --filter dangling=true

myvolume이 더 이상 컨테이너에 연결되지 않으므로 myvolumeanother_volume이 모두 댕글링으로 표시되어야 합니다.

볼륨 출력 형식 지정

이 단계에서는 docker volume ls 명령의 출력을 형식 지정하는 방법을 배우겠습니다. 이를 통해 표시되는 정보를 사용자 정의하고 필요에 가장 적합한 방식으로 표시할 수 있습니다.

--format 플래그를 사용하여 출력 형식을 지정할 수 있습니다. 이 플래그는 Go 템플릿 구문을 허용합니다.

볼륨을 나열하고 볼륨 이름만 표시해 보겠습니다. {{.Name}} 템플릿을 사용하여 이를 수행할 수 있습니다.

docker volume ls --format "{{.Name}}"

이 명령은 볼륨 이름 목록을 한 줄에 하나씩 출력합니다.

이제 콜론으로 구분된 드라이버와 이름을 모두 표시해 보겠습니다. {{.Driver}}:{{.Name}}을 사용할 수 있습니다.

docker volume ls --format "{{.Driver}}:{{.Name}}"

출력은 각 볼륨에 대한 드라이버와 이름을 local:myvolume과 같이 표시합니다.

또한 table 형식을 사용하여 출력을 기본 출력과 유사하지만 열을 더 세밀하게 제어할 수 있는 더 읽기 쉬운 테이블 형식으로 표시할 수 있습니다. 드라이버와 이름을 테이블로 표시해 보겠습니다.

docker volume ls --format "table {{.Driver}}\t{{.Name}}"

\t는 열 사이에 탭 공간을 만드는 데 사용됩니다. 출력은 "DRIVER"와 "NAME"을 헤더로 하는 테이블이 됩니다.

마지막으로, 이 랩에서 생성한 볼륨을 정리해 보겠습니다. docker volume rm 명령을 사용하여 제거할 수 있습니다.

docker volume rm myvolume another_volume

볼륨이 제거되었음을 확인하는 메시지가 표시되어야 합니다.

요약

이 랩에서는 docker volume ls 명령을 사용하여 Docker 볼륨을 관리하는 방법을 배웠습니다. docker volume create를 사용하여 샘플 볼륨을 생성하는 것으로 시작했습니다. 그 후, docker volume ls를 사용하여 시스템의 모든 기존 볼륨을 나열하는 방법을 살펴보았습니다.

또한 특정 볼륨을 찾기 위해 볼륨을 필터링하는 방법을 자세히 살펴보았습니다. --filter 플래그와 namedriver 키를 사용하여 이름과 드라이버별로 볼륨을 필터링하는 방법을 배웠습니다. 이 랩에서는 또한 댕글링 (dangling) 상태를 기반으로 볼륨을 필터링하고 가독성을 높이기 위해 docker volume ls 명령의 출력을 형식 지정하는 방법도 다루었습니다.