docker prune 명령어
docker 의 prune 명령어를 이용하면 사용하지 않는 컨테이너, 이미지, 네트워크, 볼륨 등을 일괄 삭제할 수 있다.
docker container prune
docker image prune
docker network prune
docker volume prune
--filter 를 이용해 필터링 조건을 추가할 수 있다.
# 24시간동안 사용하지 않은 이미지
docker container prune --filter "until=24h"
# env=dev 라벨을 가진 볼륨
docker volume prune --filter "label=env=dev"
# 72시간동안 사용되지 않는 builder 캐시
docker builder prune --filter "unused-for=72h"
# env 키가 없는 이미지
docker container prune --filter label!=env
`--filter` 명령어 지원 여부는 아래와 같다.
| docker system prune | 지원 | until, label, label! |
| docker container prune | 지원 | until, label, label! |
| docker image prune | 지원 | dangling=true/false, until, label, label! |
| docker volume prune | 지원 | label, label! |
| docker network prune | 지원 | label, label! |
| docker builder prune | 지원 | until, label, label!, unused-for |
이미지 정리하기
프로젝트를 하면서 ec2 컨테이너 내부에 이미지들이 쌓였는데, prune 명령어로 한번에 정리해보자.
저장공간을 얼마나 쓰고 있는지 확인하기 위해 docker에서 디스크 사용상태를 확인한다.
docker system df

-v 옵션으로 이미지별, 컨테이너별, 로컬 볼륨별 정보으로 더 자세히 볼 수 있다.
docker system df -v

이미지 부분만 자세히 보면 `<none>` 으로 표시된 이미지들이 보인다. CI/CD 과정에서 태그를 지정하지 않고 :latest 로 이미지를 끌어다 배포하는 경우, EC2 내부에 기존 이미지들이 `<none>` 으로 표시되면서 남아있게 된다. 이를 dangling된 상태라 한다.
dangling 상태는 같은 이름으로 도커 이미지를 끌어와 해당 이미지를 지칭하는 이름이 없어진 상태를 의미한다.
- 빌드 때마다 고유한 태그를 붙여서 이미지를 구별해주면 dangling이미지를 방지할 수 있다.
docker image prune 명령어가 삭제하고자 하는 대상은 dangling된 이미지들이다. 보통 dangling 된 이미지를 다시 사용하는 경우는 드물기 때문에 prune 으로 삭제해준다.
docker image prune

dangling 상태 이미지들이 모두 지워진 것을 확인할 수 있다. 여기서 dangling 상태가 아닌, 현재 컨테이너에서 사용하고 있지 않은 이미지들까지 범위를 넓혀 삭제하려면 -a 옵션을 이용한다.
docker image prune -a

docker system df
약 1GB 정도 디스크 공간이 확보되었다.

한 방에 정리하기
이미지 뿐만 아니라 다른 docker오브젝트들도 한 방에 정리하려면 아래 명령어를 이용할 수 있다.
// —volumes 로 사용하지 않는 volume 을 정리하고 -a 옵션으로 사용하지 않는 모든 이미지를 제거
docker system prune —volumes -a
삭제되는 것은 아래와 같다.
- 중지된 container
- 사용하지 않는 image
- 사용하지 않는 network
- 빌드 캐시 (Dockerfile 빌드 중 생성된 임시 데이터)
- 컨테이너에서 참조하지않는 docker 볼륨들
'Infra' 카테고리의 다른 글
| yaml 파일을 읽고 수정할때 유용한 yq 알아보기 (0) | 2025.06.19 |
|---|---|
| [Docker] Single-platform 이미지와 Multi-platform 이미지, Multi-platform 이미지 빌드를 위한 Buildx (2) | 2025.05.30 |
| [Linux] 환경변수 (Environment Variable) 개념과 활용 (0) | 2025.05.24 |
