docker system prune
docker system prune
docker system prune은 사용하지 않는 데이터를 제거하는 명령이에요. 멈춘 컨테이너, 사용하지 않는 네트워크·이미지·빌드 캐시, 선택적으로 볼륨까지 정리해서 공간을 확보할 때 사용해요.
출처: 문서
본문
docker system prune은 사용하지 않는 모든 컨테이너, 네트워크, 이미지(댕글링과 미사용 모두), 미사용 빌드 캐시, 그리고 선택적으로 볼륨을 제거해요.
빌드 캐시는 이 명령으로 항상 정리 대상이 돼요 (RUN --mount=type=cache로 만든 BuildKit 캐시 마운트 포함). 컨테이너·네트워크·이미지를 제거하지 않고 빌드 캐시만 되찾으려면 docker builder prune을 사용해요.
docker system prune [OPTIONS]
지원하는 옵션은 다음과 같아요.
| 옵션 | 기본값 | 설명 |
|---|---|---|
-a, --all |
댕글링뿐 아니라 사용하지 않는 모든 이미지를 제거해요. | |
--filter |
API 1.28+ 필터 값을 제공해요 (예: label==). |
|
-f, --force |
확인을 묻지 않아요. | |
--volumes |
익명 볼륨도 정리해요. |
예시
$ docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- unused build cache
Are you sure you want to continue? [y/N] y
Deleted Containers:
f44f9b81948b3919590d5f79a680d8378f1139b41952e219830a33027c80c867
792776e68ac9d75bce4092bc1b5cc17b779bc926ab04f4185aec9bf1c0d4641f
...
Total reclaimed space: 1.84kB
기본적으로 현재 컨테이너가 사용하지 않는 볼륨의 중요 데이터가 삭제되지 않도록 볼륨은 제거하지 않아요. 익명 볼륨도 정리하려면 --volumes 플래그를 사용해요.
$ docker system prune -a --volumes
필터링 (--filter)
--filter 형식은 key=value예요. 여러 필터는 다음과 같이 결합돼요.
- 키가 다른 여러 필터는 AND 논리로 결합돼요. 모든 조건을 만족해야 정리돼요.
- 키가 같은 여러 필터는 OR 논리로 결합돼요. 해당 키의 값 중 하나라도 일치하면 정리돼요.
지원하는 필터는 다음과 같아요.
until(until=<timestamp>): 주어진 타임스탬프보다 이전에 만들어진 컨테이너·이미지·네트워크만 제거해요.label(label=,label==,label!=,label!==): 지정한 라벨이 있는(또는label!=...인 경우 없는) 컨테이너·이미지·네트워크·볼륨만 제거해요.
until 필터는 Unix 타임스탬프, 날짜 형식 타임스탬프, 또는 ParseDuration이 지원하는 Go 기간 문자열(예: 10m, 1h30m)을 받아요. 타임스탬프 끝에 Z나 +-00:00 시간대 오프셋을 주지 않으면 데몬 머신의 로컬 시간대를 사용해요.