docker ps -a --filter 명령어는 Docker 컨테이너 목록에서 특정 조건에 따라 필터링할 때 매우 유용하게 쓰입니다. 컨테이너가 많은 환경에서 원하는 컨테이너를 빠르게 찾을 수 있는 강력한 기능입니다.

아래에서 주요 필터 옵션을 실제 활용사례와 함께 설명하겠습니다.


기본 형식



docker ps -a --filter <필터이름>=<필터값>

여러 필터를 동시에 사용할 수 있으며, 그런 경우 여러 개의 --filter 옵션을 사용합니다.


🔍 주요 필터 옵션과 활용사례

1. 상태(status)로 필터링하기

컨테이너의 상태로 필터링할 때 활용합니다.

상태 옵션 설명
created 생성되었지만 아직 시작되지 않은 컨테이너
restarting 계속해서 재시작 중인 컨테이너
running 현재 실행 중인 컨테이너
paused 일시 중지된 컨테이너
exited 종료된 컨테이너

예시: 실행 중인 컨테이너만 보기

docker ps -a --filter status=running

예시: 종료된 컨테이너만 보기

docker ps -a --filter status=exited

2. 컨테이너 이름(name)으로 필터링하기

특정 이름을 포함하는 컨테이너를 찾을 때 활용합니다.

예시: 이름에 "web"이 포함된 컨테이너만 보기

docker ps -a --filter name=web
  • 결과 예시:
CONTAINER ID   IMAGE           COMMAND     CREATED         STATUS         NAMES 
f1c2d3e4f5     nginx:latest    "/start"    2 days ago      Up 2 days      my-web-container

3. 사용된 이미지(image)로 필터링하기

특정 이미지를 사용한 컨테이너를 쉽게 찾을 때 활용합니다.

예시: nginx 이미지를 사용하는 컨테이너 보기

docker ps -a --filter ancestor=nginx
  • 결과 예시:
CONTAINER ID   IMAGE          COMMAND          STATUS        NAMES
a1b2c3d4e5     nginx:latest   "/start"         Up 3 hours    nginx-server-1
f6g7h8i9j0     nginx:alpine   "/start"         Exited        nginx-temp

4. 볼륨(volume)으로 필터링하기

특정 볼륨을 마운트한 컨테이너를 찾을 때 유용합니다.

예시: my_volume 볼륨을 사용하는 컨테이너 보기

docker ps -a --filter volume=my_volume
  • 결과 예시:
CONTAINER ID   IMAGE          COMMAND           STATUS         NAMES
1a2b3c4d5e     postgres       "docker-entry"    Up 2 days      postgres_db

5. 라벨(label)로 필터링하기

Docker Compose나 Kubernetes 등에서 라벨을 붙여 컨테이너를 관리할 때 유용합니다.

예시: "env=production" 라벨이 있는 컨테이너 보기

docker ps -a --filter label=env=production

  • 결과 예시:
CONTAINER ID   IMAGE           COMMAND         STATUS          NAMES 
abcdef12345    myapp:latest    "/run-app"      Up 3 days       myapp-production

6. 네트워크(network)로 필터링하기

특정 네트워크에 연결된 컨테이너 목록을 확인할 때 유용합니다.

예시: 특정 네트워크에 연결된 컨테이너 보기

docker ps -a --filter network=my_network

  • 결과 예시:
CONTAINER ID   IMAGE          COMMAND          STATUS         NAMES 
123abc456de    redis          "/start"         Up 1 day       redis-cache 
456def789gh    postgres       "/start"         Up 1 day       postgres-db

7. ID로 필터링하기

특정 컨테이너 ID를 빠르게 검색할 때 사용됩니다. (보통 ID 앞부분만 입력하면 됩니다.)

예시: ID가 1234로 시작하는 컨테이너 보기

docker ps -a --filter id=1234

💡 여러 필터 조합 사용하기



필터는 여러 개를 조합할 수 있습니다.

예시: "web"을 이름에 포함하고, 상태가 "running"이며, "nginx" 이미지를 사용하는 컨테이너 찾기

docker ps -a --filter name=web --filter status=running --filter ancestor=nginx

🛠️ 실용적인 활용사례

  • 특정 프로젝트의 컨테이너를 모두 정지시킬 때:
docker stop $(docker ps -a -q --filter name=my_project)****
  • 오래된 종료 컨테이너 삭제:
docker rm $(docker ps -a -q --filter status=exited)
  • 불필요한 임시 컨테이너를 정리할 때:
docker rm $(docker ps -a -q --filter ancestor=temp_image)

이처럼 docker ps -a --filter 명령어는 컨테이너가 많아졌을 때 원하는 조건으로 빠르게 필터링하고 관리할 수 있어 매우 실용적이고 강력합니다. 적극적으로 활용해 보세요!