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 명령어는 컨테이너가 많아졌을 때 원하는 조건으로 빠르게 필터링하고 관리할 수 있어 매우 실용적이고 강력합니다. 적극적으로 활용해 보세요!
댓글이 없습니다.