Docker 이미지를 여러 번 빌드하다 보면 빌드 속도를 높이기 위해 다양한 캐시(Cache)가 생성됩니다. 이러한 빌드 캐시는 다음 빌드 시 재사용되어 성능을 향상시키지만, 시간이 지날수록 불필요한 캐시가 계속 쌓여 디스크 공간을 많이 차지하게 됩니다.
특히 CI/CD 서버나 개발 환경에서는 하루에도 수십 번에서 수백 번까지 이미지를 빌드하는 경우가 많아 빌드 캐시 관리가 매우 중요합니다.
이럴 때 사용하는 명령어가 바로 docker builder prune입니다.
Docker Builder Prune은 사용하지 않는 Docker 빌드 캐시를 삭제하여 디스크 공간을 확보하는 명령어입니다. 이미지나 컨테이너는 삭제하지 않고 빌드 캐시만 정리하기 때문에 안전하게 사용할 수 있습니다.
이번 글에서는 Docker Builder Prune의 개념부터 기본 사용법, 주요 옵션, 삭제 대상, 실무 활용 사례까지 자세히 알아보겠습니다.
Docker Builder Prune이란 무엇인가?
Docker Builder Prune은 사용되지 않는 Docker Build Cache를 삭제하는 명령어입니다.
이미지를 삭제하는 것이 아니라 Docker Build 과정에서 생성된 캐시만 제거합니다.
Docker Build를 자주 수행하는 환경에서는 매우 중요한 관리 명령어입니다.
Docker Builder Prune은 언제 사용하는가?
다음과 같은 상황에서 자주 사용됩니다.
- 디스크 공간 부족
- Build Cache 정리
- CI/CD 서버 관리
- 개발 서버 최적화
- 오래된 캐시 제거
- Docker 빌드 환경 관리
빌드가 많은 프로젝트일수록 자주 사용하는 명령어입니다.
Docker Builder Prune 기본 사용법
가장 기본적인 명령입니다.
docker builder prune
실행하면 삭제 여부를 묻는 메시지가 출력됩니다.
WARNING! This will remove all dangling build cache.
Are you sure you want to continue? [y/N]
y를 입력하면 캐시가 삭제됩니다.
확인 없이 삭제
자동화 환경에서는 다음과 같이 사용합니다.
docker builder prune -f
확인 메시지 없이 즉시 삭제됩니다.
모든 Build Cache 삭제
기본적으로는 사용되지 않는 캐시만 삭제됩니다.
모든 Build Cache를 삭제하려면 다음 명령을 사용합니다.
docker builder prune -a
오래된 캐시까지 모두 제거됩니다.
확인 없이 전체 삭제
자동 정리 작업에서는 다음 명령을 많이 사용합니다.
docker builder prune -af
CI/CD 서버에서 정기적으로 실행하는 경우가 많습니다.
삭제 전 Docker 저장 공간 확인
현재 Docker 저장 공간을 확인합니다.
docker system df
빌드 캐시 사용량을 함께 확인할 수 있습니다.
삭제 후 저장 공간 확인
Builder Prune 실행 후 다시 확인합니다.
docker system df
삭제된 Build Cache만큼 저장 공간이 확보된 것을 확인할 수 있습니다.
Docker Builder Prune으로 삭제되는 대상
Builder Prune은 다음 항목을 삭제합니다.
- Build Cache
- 사용하지 않는 Layer Cache
- 중간 Build Cache
- 오래된 Build Cache
이미지와 실행 중인 컨테이너는 삭제하지 않습니다.
Docker Builder Prune의 특징
Docker Builder Prune은 다음과 같은 특징이 있습니다.
- Build Cache만 삭제
- 이미지는 유지
- 컨테이너는 유지
- 디스크 공간 확보
- 빌드 환경 최적화
빌드 성능과 저장 공간을 균형 있게 관리할 수 있는 명령어입니다.
Docker Builder Prune 실무 활용 예제
Docker Builder Prune은 Docker Build 과정에서 생성된 캐시를 삭제하여 디스크 공간을 확보하는 명령어입니다. 개발 서버와 CI/CD 환경에서는 주기적으로 실행하면 저장 공간을 효율적으로 관리할 수 있습니다.
사용하지 않는 Build Cache 삭제
가장 기본적인 사용 방법입니다.
docker builder prune
출력 예시는 다음과 같습니다.
Deleted build cache objects:
xxxxxxxxxxxxxxxx
Total reclaimed space: 2.4GB
사용하지 않는 Build Cache만 삭제됩니다.
확인 없이 삭제
자동화 환경에서는 확인 과정 없이 실행하는 것이 일반적입니다.
docker builder prune -f
CI/CD 스크립트에서 자주 사용하는 방식입니다.
모든 Build Cache 삭제
오래된 캐시까지 모두 삭제하려면 다음 명령을 사용합니다.
docker builder prune -a
빌드에 사용되지 않는 모든 캐시가 삭제됩니다.
전체 Build Cache 자동 삭제
확인 없이 모든 Build Cache를 삭제합니다.
docker builder prune -af
자동 유지보수 작업에서 자주 사용됩니다.
저장 공간 확인
Builder Cache 정리 전후의 저장 공간을 비교합니다.
docker system df
출력 예시입니다.
TYPE TOTAL ACTIVE SIZE
Images 8 4 2.3GB
Build Cache 35 18GB
Builder Prune 실행 후 Build Cache 용량이 크게 감소한 것을 확인할 수 있습니다.
Linux 서버 문제 해결
CI/CD 서버에서 하루 수백 번의 Docker Build를 수행하는 환경을 운영하고 있었습니다.
몇 달이 지나자 디스크 공간 부족으로 빌드가 실패하기 시작했습니다.
no space left on device
먼저 Docker 저장 공간을 확인했습니다.
docker system df
확인 결과 Build Cache가 40GB 이상 사용되고 있었습니다.
불필요한 Build Cache를 삭제했습니다.
docker builder prune -af
삭제가 완료된 후 다시 저장 공간을 확인했습니다.
docker system df
Build Cache가 대부분 정리되었고 약 38GB의 디스크 공간을 확보할 수 있었습니다.
이후 Cron을 이용하여 매주 Builder Prune을 자동 실행하도록 설정해 동일한 문제가 다시 발생하지 않도록 관리했습니다.
Docker Builder Prune 사용 시 주의사항
Docker Builder Prune을 사용할 때는 다음 사항을 알아두는 것이 좋습니다.
첫 번째는 이미지는 삭제되지 않습니다.
Builder Cache만 삭제되므로 기존 이미지는 그대로 유지됩니다.
두 번째는 캐시를 삭제하면 다음 빌드 시 일부 단계가 다시 수행됩니다.
따라서 첫 번째 빌드는 평소보다 시간이 조금 더 걸릴 수 있습니다.
세 번째는 -a 옵션을 사용하면 오래된 캐시까지 모두 삭제됩니다.
저장 공간 확보에는 효과적이지만 이후 빌드 시간이 증가할 수 있습니다.
네 번째는 CI/CD 서버에서는 주기적인 캐시 정리가 권장됩니다.
디스크 공간 부족 문제를 예방하는 데 큰 도움이 됩니다.
Best Practice
Docker Builder Prune을 사용할 때는 다음과 같은 방법을 추천합니다.
- Build Cache가 과도하게 증가하기 전에 주기적으로 정리합니다.
- CI/CD 서버에서는 자동 정리 작업을 설정합니다.
docker system df로 Build Cache 용량을 정기적으로 확인합니다.-a옵션은 충분한 검토 후 사용합니다.- 이미지 삭제가 필요한 경우에는
docker image prune과 구분하여 사용합니다. - 운영 서버에서는 빌드 작업이 없는 시간대에 캐시를 정리하는 것이 좋습니다.
이러한 방법을 적용하면 Docker 빌드 환경을 더욱 효율적으로 관리할 수 있습니다.
자주 묻는 질문
Docker Builder Prune은 이미지를 삭제하나요?
아닙니다.
Build Cache만 삭제하며 Docker 이미지는 그대로 유지됩니다.
Build Cache를 삭제하면 문제가 발생하나요?
서비스에는 영향을 주지 않습니다.
다만 다음 Docker Build 시 캐시를 다시 생성하기 때문에 빌드 시간이 다소 늘어날 수 있습니다.
Builder Prune과 Image Prune의 차이는 무엇인가요?
Builder Prune은 Build Cache만 삭제합니다.
Image Prune은 사용하지 않는 Docker 이미지를 삭제합니다.
Build Cache는 왜 계속 증가하나요?
Docker Build를 수행할 때마다 새로운 캐시가 생성되기 때문입니다.
장기간 빌드가 반복되면 캐시 용량이 지속적으로 증가할 수 있습니다.
마무리
Docker Builder Prune은 Docker Build 과정에서 생성되는 불필요한 캐시를 정리하여 저장 공간을 확보하는 중요한 관리 명령어입니다.
특히 CI/CD 환경이나 개발 서버처럼 이미지를 자주 빌드하는 환경에서는 주기적으로 실행하면 디스크 공간 부족 문제를 예방하고 서버를 안정적으로 운영할 수 있습니다.
이미지와 컨테이너는 유지하면서 Build Cache만 삭제하므로 안전하게 사용할 수 있으며, Docker 유지보수 과정에서 반드시 알아두어야 할 명령어 중 하나입니다.