Docker 컨테이너 목록 명령어 사용법: docker container ls (docker ps) 완벽 가이드

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker container ls 명령 (또는 docker ps 명령) 을 효과적으로 사용하여 Docker 컨테이너를 나열하고 관리하는 방법을 배우게 됩니다. 먼저 현재 실행 중인 컨테이너만 나열하는 것으로 시작하여, 중지된 컨테이너를 포함한 모든 컨테이너를 볼 수 있도록 범위를 확장할 것입니다.

또한 상태 및 이름과 같은 다양한 기준에 따라 컨테이너 목록을 필터링하는 방법을 탐구하여 특정 컨테이너를 빠르게 찾을 수 있습니다. 마지막으로 컨테이너 크기와 같은 추가 정보를 표시하고 필요에 맞게 출력을 형식화하여 컨테이너 환경에 대한 포괄적인 이해를 제공하는 방법을 배우게 됩니다.

실행 중인 컨테이너 목록 확인

이 단계에서는 실행 중인 Docker 컨테이너를 나열하는 방법을 배우게 됩니다. docker ps 명령은 실행 중인 컨테이너에 대한 정보를 표시하는 데 사용됩니다.

먼저, 계속 실행 상태를 유지하는 간단한 컨테이너를 실행해 보겠습니다. ubuntu 이미지를 사용하고 컨테이너를 활성 상태로 유지하는 명령을 실행합니다.

docker pull ubuntu
docker run -d ubuntu sleep infinity

docker pull ubuntu 명령은 Docker Hub 에서 ubuntu 이미지를 다운로드합니다. docker run -d ubuntu sleep infinity 명령은 ubuntu 이미지를 기반으로 새 컨테이너를 실행합니다.

  • -d는 컨테이너를 detached 모드 (백그라운드에서 실행됨) 로 실행합니다.
  • ubuntu는 이미지 이름입니다.
  • sleep infinity는 컨테이너 내부에서 실행되는 명령으로, 컨테이너를 무한정 실행 상태로 유지합니다.

이제 docker ps 명령을 사용하여 실행 중인 컨테이너를 나열해 보겠습니다.

docker ps

이 명령은 현재 실행 중인 모든 컨테이너의 목록을 표시합니다. 방금 시작한 ubuntu 컨테이너가 표시되어야 합니다. 출력에는 컨테이너 ID, 이미지, 명령, 생성 시간, 상태, 포트 및 이름과 같은 정보가 포함됩니다.

중지된 컨테이너를 포함한 모든 컨테이너 표시

이전 단계에서는 docker ps를 사용하여 실행 중인 컨테이너를 나열하는 방법을 배웠습니다. 그러나 docker ps는 현재 실행 중인 컨테이너만 표시합니다. 중지된 컨테이너를 포함한 모든 컨테이너를 보려면 -a 플래그를 사용해야 합니다.

먼저, 이전 단계에서 시작한 ubuntu 컨테이너를 중지해 보겠습니다. 컨테이너 ID 또는 이름이 필요합니다. 이는 docker ps의 출력에서 얻을 수 있습니다.

docker stop $(docker ps -q --filter ancestor=ubuntu)

docker stop 명령은 실행 중인 컨테이너를 중지합니다.

  • $(docker ps -q --filter ancestor=ubuntu)ubuntu 이미지를 기반으로 실행 중인 컨테이너의 ID 를 가져오는 명령 치환입니다. -q 플래그는 컨테이너 ID 만 출력하고, --filter ancestor=ubuntu는 이미지 이름으로 필터링합니다.

이제 docker ps -a를 사용하여 중지된 컨테이너를 포함한 모든 컨테이너를 나열해 보겠습니다.

docker ps -a

이 명령은 현재 상태 (실행 중, 중지됨, 종료됨 등) 에 관계없이 생성된 모든 컨테이너의 목록을 표시합니다. ubuntu 컨테이너가 나열되어야 하며, 상태는 "Exited"여야 합니다.

상태 및 이름으로 컨테이너 필터링

이 단계에서는 docker ps 명령과 함께 --filter 플래그를 사용하여 컨테이너 목록을 상태 및 이름을 기준으로 필터링하는 방법을 배우게 됩니다. 이는 컨테이너가 많고 특정 컨테이너를 찾고 싶을 때 유용합니다.

먼저, 다른 컨테이너를 시작해 보지만, 이번에는 특정 이름을 지정합니다.

docker run -d --name my-nginx nginx

docker run -d --name my-nginx nginx 명령은 nginx 이미지를 기반으로 새 컨테이너를 detached 모드로 실행하고 my-nginx라는 이름을 할당합니다.

  • docker pull nginxdocker run이 로컬에서 사용할 수 없는 경우 자동으로 이미지를 가져오므로 여기서는 명시적으로 필요하지 않습니다.

이제 상태 필터를 사용하여 실행 중인 컨테이너만 나열해 보겠습니다.

docker ps --filter status=running

이 명령은 현재 "running" 상태인 컨테이너만 표시합니다. my-nginx 컨테이너가 나열되어야 합니다.

다음으로, 이름을 기준으로 컨테이너를 필터링해 보겠습니다.

docker ps -a --filter name=my-nginx

이 명령은 이름이 my-nginx인 모든 컨테이너 (-a 덕분에 중지된 컨테이너 포함) 를 나열합니다. my-nginx 컨테이너가 상태와 함께 나열되어야 합니다.

필터를 결합할 수도 있습니다. 예를 들어, 특정 이름의 실행 중인 컨테이너를 나열하려면 다음과 같이 합니다.

docker ps --filter status=running --filter name=my-nginx

이렇게 하면 my-nginx 컨테이너가 현재 실행 중인 경우에만 표시됩니다.

컨테이너 크기 표시 및 출력 형식 지정

이 단계에서는 컨테이너 크기를 표시하고 docker ps 명령의 출력을 형식 지정하는 방법을 배우게 됩니다. 컨테이너의 크기를 아는 것은 디스크 공간을 관리하는 데 도움이 될 수 있습니다.

기본적으로 docker ps는 컨테이너 크기를 표시하지 않습니다. 크기 정보를 포함하려면 --size 플래그를 사용할 수 있습니다.

docker ps -a --size

이 명령은 모든 컨테이너 (실행 중 및 중지됨) 를 나열하고 크기와 관련된 두 개의 열을 포함합니다: SIZE (컨테이너의 쓰기 가능한 레이어 크기) 및 VIRTUAL SIZE (이미지 레이어를 포함한 컨테이너의 총 크기).

때로는 docker ps의 기본 출력 형식이 정확히 필요한 형식이 아닐 수 있습니다. --format 플래그를 사용하여 출력을 형식 지정할 수 있습니다. 이 플래그는 Go 템플릿 문자열을 사용합니다.

예를 들어, 컨테이너 ID, 이미지 이름 및 상태만 표시하려면 다음 명령을 사용할 수 있습니다.

docker ps -a --format "{{.ID}}\t{{.Image}}\t{{.Status}}"

이 형식 문자열에서:

  • {{.ID}}는 컨테이너 ID 를 나타냅니다.
  • {{.Image}}는 이미지 이름을 나타냅니다.
  • {{.Status}}는 컨테이너 상태를 나타냅니다.
  • \t는 열을 구분하기 위해 탭 문자에 사용됩니다.

형식 지정된 출력에 크기 정보를 포함할 수도 있습니다.

docker ps -a --format "{{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Size}}"

이 명령은 컨테이너 ID, 이미지, 상태 및 크기를 표시합니다. {{.Size}} 필드에는 쓰기 가능한 레이어 크기와 가상 크기가 모두 포함됩니다.

필요에 따라 출력을 사용자 정의하기 위해 형식 문자열에서 다양한 필드를 실험해 보십시오. 다른 유용한 필드로는 {{.Names}}, {{.CreatedAt}}{{.Ports}}가 있습니다.

요약

이 랩에서는 docker ps 명령을 사용하여 Docker 컨테이너를 나열하는 방법을 배웠습니다. 먼저 detached 모드에서 간단한 ubuntu 컨테이너를 실행한 후 docker ps를 사용하여 실행 중인 컨테이너만 나열하는 것으로 시작했습니다. 그런 다음, 이전에 생성된 컨테이너를 중지한 후 -a 플래그를 docker ps 명령에 추가하여 중지된 컨테이너를 포함한 모든 컨테이너를 표시하는 방법을 배웠습니다.