반응형
docker builder prune 명령어는 Docker 빌드 캐시(build cache) 및 중간 이미지를 정리(clean up)하기 위한 도구입니다.
Docker를 오랫동안 사용하다 보면 빌드 과정에서 생성된 중간 캐시 레이어나 빌드 관련 데이터가 쌓여 디스크 용량을 많이 차지하게 되는데, 이 명령어가 바로 그걸 정리해줍니다.
🧱 1. 기본 개념
🔹 명령어 형식
docker builder prune [OPTIONS]
🔹 역할
Docker는 이미지를 빌드할 때 **빌드 캐시(Build Cache)**를 사용합니다.
이는 각 단계(Layer)의 결과를 저장해두어, 같은 단계가 다시 실행될 때 시간을 절약하기 위함입니다.
하지만, 프로젝트 변경이 잦거나 이미지가 자주 빌드되면 이 캐시가 쌓이면서 수 GB 단위의 공간을 차지하게 됩니다.
docker builder prune 명령은 이런 불필요한 캐시를 정리합니다.
🧹 2. 주요 옵션 정리
| 옵션 | 설명 |
| -a, --all | 모든 빌드 캐시를 삭제 (현재 사용 중인 캐시도 포함) |
| -f, --force | 사용자에게 확인 없이 강제 삭제 |
| --filter | 특정 조건에 맞는 캐시만 삭제 (예: 기간, ID 등) |
| --keep-storage | 지정한 용량(바이트 단위)만큼은 유지하고 나머지를 삭제 |
| --verbose | 삭제되는 캐시 정보를 자세히 출력 |
🧩 3. 사용 예시
✅ (1) 기본 캐시 정리
docker builder prune
- 사용되지 않는 빌드 캐시만 정리합니다.
- 명령 실행 시 확인 메시지가 표시됩니다:
-
WARNING! This will remove all dangling build cache. Are you sure you want to continue? [y/N]
✅ (2) 모든 캐시 완전 삭제
docker builder prune -a
- 현재 사용 중인 빌드 캐시까지 모두 삭제합니다.
- 디스크 용량 확보에는 효과적이지만, 이후 빌드시 캐시가 전혀 없어 빌드 속도가 느려질 수 있습니다.
✅ (3) 강제 실행 (확인 없이)
docker builder prune -af
- -a : 모든 캐시 제거
- -f : 사용자 확인 없이 바로 실행
- 💡 자동화 스크립트나 CI/CD 환경에서 자주 사용됩니다.
✅ (4) 오래된 캐시만 삭제
docker builder prune --filter until=24h
- 24시간 이상 된 캐시만 정리합니다.
- until 필터에는 h, m, d 단위 사용 가능
- 예: until=72h → 3일 이상된 캐시 삭제
✅ (5) 디스크 사용량 제한
docker builder prune --keep-storage 20GB
- 총 빌드 캐시 용량이 20GB를 초과하면 오래된 캐시부터 삭제합니다.
- 자동 캐시 관리용 옵션으로, CI 서버나 Jenkins 환경에서 유용합니다.
📦 4. 빌드 캐시란?
Dockerfile의 각 명령은 하나의 “레이어(layer)”를 만듭니다.
예를 들어:
FROM ubuntu RUN apt update && apt install -y python3 COPY . /app RUN python3 setup.py install
이때, 각 RUN, COPY 단계의 결과가 캐시로 저장됩니다.
다음번 빌드 때 동일한 단계가 있다면, 이미 저장된 캐시를 재활용합니다.
하지만,
- Dockerfile 변경
- 베이스 이미지 변경
- 소스 코드 변경
등이 자주 일어나면, 이 캐시들이 쌓여서 디스크 공간을 낭비하게 됩니다.
⚠️ 5. 주의사항
| 주의 포인트 | 설명 |
| ⚡ 빌드 속도 저하 | -a 옵션으로 캐시를 모두 지우면 다음 빌드시 모든 단계가 새로 실행되어 느려집니다. |
| 📂 이미지/컨테이너는 영향 없음 | docker image prune이나 docker system prune과 달리, 실제 이미지나 컨테이너는 삭제하지 않습니다. |
| 🧰 BuildKit 캐시 포함 | Docker 18.09 이후에는 BuildKit 캐시도 이 명령으로 관리됩니다. (DOCKER_BUILDKIT=1) |
🔍 6. 디스크 공간 확인 및 관리 예시
# 현재 빌드 캐시 확인 docker builder du # 빌드 캐시 상세 출력 docker system df -v # 모든 불필요한 데이터(이미지, 컨테이너, 네트워크 포함) 제거 docker system prune -af
🧠 7. 실무 활용 팁
- 개발용 로컬 환경→ 1일 이상된 빌드 캐시만 정리 (빌드 속도 유지 + 디스크 확보)
-
docker builder prune -af --filter until=24h
- CI/CD 서버→ 일정 용량 이상 쌓이면 오래된 캐시를 자동으로 정리
-
docker builder prune -af --keep-storage 10GB
- 빌드 후 자동 정리 스크립트 예시
-
#!/bin/bash docker build -t myapp:latest . docker builder prune -af --filter until=12h
🧾 정리
| 명령어 | 기능 요약 |
| docker builder prune | 사용되지 않는 빌드 캐시 제거 |
| docker builder prune -a | 모든 캐시 제거 |
| docker builder prune --filter until=24h | 24시간 이상된 캐시만 삭제 |
| docker builder prune --keep-storage 10GB | 캐시 용량이 10GB 넘으면 오래된 것부터 삭제 |
| docker builder du | 빌드 캐시 용량 확인 |
반응형
'[AWS-FRF] > CICD' 카테고리의 다른 글
| clean package -DskipTests 정의 !! (1) | 2025.11.04 |
|---|---|
| [참고][Docker] 스프링부트 프로젝트 도커 이미지(Image) 만들고 실행하기 !! (0) | 2025.11.03 |
| [참고][Docker] Dockerfile 작성법 !! (Jar파일 실행 이미지 만들기) (1) | 2025.11.03 |
| [참고] Jenkins를 활용한 CI/CD 파이프라인 구축 (GitHub → Docker → ECR 업로드) (1) | 2025.10.30 |
| [참고][Jenkins] Docker build 후 Amazon ECR로 이미지 업로드하기 !! (0) | 2025.10.29 |
| [참고][AWS][Jenkins] 변경된 설정을 이력으로 남기기 (config history)!! (8) | 2025.01.21 |
| [중요][AWS] 젠킨스 war 파일 업데이트 방법!! (4) | 2025.01.08 |
| [중요][AWS][터널링] 크롬/엣지 http - https 자동강제 전환(리다이렉트)해제 방법!! (63) | 2024.12.04 |
댓글