Docker Builder Prune 사용법 완벽 가이드! Build Cache 삭제 및 디스크 최적화

Docker를 이용하여 이미지를 자주 빌드하다 보면 어느 순간 디스크 공간이 빠르게 줄어드는 현상을 경험하게 됩니다. 하지만 docker images 명령으로 확인해 보면 저장된 이미지 용량은 생각보다 크지 않은 경우가 많습니다.

이러한 원인의 대부분은 Docker Build Cache입니다.

Docker는 이미지를 빠르게 빌드하기 위해 이전 빌드 과정의 결과를 캐시(Cache)로 저장합니다. 같은 명령이 다시 실행되면 캐시를 재사용하여 빌드 속도를 크게 향상시킬 수 있습니다.

하지만 프로젝트가 많아지고 빌드를 반복하다 보면 Build Cache가 수십 GB 이상 쌓이는 경우도 흔합니다. 이 캐시는 실제 서비스에는 사용되지 않지만 디스크 공간을 계속 차지하게 됩니다.

이럴 때 사용하는 명령어가 바로 docker builder prune입니다.

Docker Builder Prune은 사용하지 않는 Build Cache만 선택적으로 삭제하여 저장 공간을 확보하는 명령어입니다. 이미지나 컨테이너에는 영향을 주지 않으므로 비교적 안전하게 사용할 수 있습니다.

이번 글에서는 Docker Builder Prune의 개념부터 기본 사용법, 주요 옵션, 실무 활용 사례, 운영 시 주의사항까지 자세히 알아보겠습니다.

Docker Builder Prune이란 무엇인가?

Docker Builder Prune은 Docker Build 과정에서 생성된 캐시를 삭제하는 명령어입니다.

Docker Build는 동일한 작업을 빠르게 수행하기 위해 이전 빌드 결과를 캐시로 저장합니다.

예를 들어 Ubuntu를 다운로드하거나 패키지를 설치한 결과를 캐시에 저장하여 다음 빌드에서는 다시 실행하지 않습니다.

이러한 캐시는 빌드 속도를 높여주지만 장기간 사용하면 상당한 디스크 공간을 차지하게 됩니다.

Docker Builder Prune는 언제 사용하는가?

다음과 같은 상황에서 많이 사용됩니다.

  • Docker Build를 자주 수행하는 개발 서버
  • CI/CD 서버 유지보수
  • Build Cache 용량이 증가했을 때
  • 디스크 공간이 부족할 때
  • 오래된 캐시를 정리하고 싶을 때
  • 빌드 성능을 다시 초기화하고 싶을 때

특히 이미지를 자주 생성하는 개발 환경에서는 정기적으로 실행하는 것이 좋습니다.

Docker Builder Prune 기본 사용법

기본 사용 방법은 다음과 같습니다.

docker builder prune

명령을 실행하면 삭제 여부를 확인하는 메시지가 출력됩니다.

WARNING! This will remove all dangling build cache.

Are you sure you want to continue? [y/N]

y를 입력하면 사용하지 않는 Build Cache가 삭제됩니다.

모든 Build Cache 삭제

기본 명령은 사용하지 않는 일부 캐시만 삭제합니다.

모든 Build Cache를 삭제하려면 다음 명령을 사용합니다.

docker builder prune -a

-a 옵션은 사용 가능한 모든 Build Cache를 삭제합니다.

다음 빌드에서는 캐시를 사용할 수 없으므로 빌드 시간이 길어질 수 있습니다.

자동으로 삭제하기

자동화 스크립트에서는 확인 메시지를 생략하는 것이 일반적입니다.

docker builder prune -f

CI/CD 환경에서는 -f 옵션을 자주 사용합니다.

오래된 Build Cache만 삭제하기

필터 옵션을 이용하면 오래된 캐시만 삭제할 수도 있습니다.

예를 들어 7일 이상 사용하지 않은 캐시를 삭제하려면 다음과 같이 실행합니다.

docker builder prune --filter "until=168h"

168시간은 약 7일입니다.

이 기능을 이용하면 최근 빌드에 필요한 캐시는 유지하면서 오래된 캐시만 효율적으로 정리할 수 있습니다.

현재 Build Cache 사용량 확인

Build Cache를 삭제하기 전에 현재 사용량을 확인하는 것이 좋습니다.

docker system df

출력 결과에는 이미지, 컨테이너, Volume뿐 아니라 Build Cache의 사용량도 함께 표시됩니다.

이를 통해 얼마나 많은 저장 공간을 확보할 수 있는지 미리 확인할 수 있습니다.

Docker Builder Prune 실무 활용 예제

Docker Builder Prune은 Docker Build를 자주 수행하는 개발 서버와 CI/CD 환경에서 매우 자주 사용하는 명령어입니다. Build Cache를 효율적으로 관리하면 저장 공간을 확보하면서도 Docker 서버를 안정적으로 운영할 수 있습니다.

CI/CD 서버 Build Cache 정리

Jenkins, GitHub Actions, GitLab CI와 같은 CI/CD 서버에서는 하루에도 수십 번에서 수백 번까지 이미지를 빌드합니다.

빌드가 반복될수록 Build Cache가 계속 증가하므로 정기적으로 삭제하는 것이 좋습니다.

docker builder prune -f

자동화 스크립트에 추가하면 불필요한 캐시를 주기적으로 제거할 수 있습니다.

오래된 캐시만 삭제

최근 빌드에 필요한 캐시는 유지하면서 오래된 캐시만 삭제하려면 다음과 같이 실행합니다.

docker builder prune --filter "until=240h"

240시간은 약 10일입니다.

빌드 성능을 유지하면서도 저장 공간을 효율적으로 확보할 수 있습니다.

Build Cache 전체 삭제

프로젝트가 종료되었거나 Docker 환경을 초기화하려면 모든 Build Cache를 삭제할 수 있습니다.

docker builder prune -a

다음 Build는 처음부터 다시 진행되므로 시간이 다소 오래 걸릴 수 있습니다.

Docker 사용량 확인

삭제 전후의 저장 공간을 비교하려면 다음 명령을 실행합니다.

docker system df

Build Cache가 얼마나 감소했는지 쉽게 확인할 수 있습니다.

Linux 서버 문제 해결

한 개발 서버에서 Docker Build 속도가 점점 느려지고 디스크 사용량도 크게 증가하는 문제가 발생했습니다.

먼저 Docker 사용량을 확인했습니다.

docker system df

출력 결과를 보니 Build Cache만 약 22GB를 사용하고 있었습니다.

최근 프로젝트만 유지하기 위해 오래된 캐시를 삭제했습니다.

docker builder prune --filter "until=720h"

이후 다시 확인한 결과 Build Cache가 4GB 수준으로 감소했고 약 18GB의 저장 공간을 확보할 수 있었습니다.

또한 오래된 캐시만 삭제했기 때문에 최근 프로젝트의 Build 속도에는 거의 영향을 주지 않았습니다.

Docker Builder Prune 사용 시 주의사항

Docker Builder Prune을 사용할 때는 몇 가지 사항을 알아두는 것이 좋습니다.

첫 번째는 Build Cache만 삭제한다는 점입니다.

이미지, 컨테이너, Volume에는 영향을 주지 않습니다.

두 번째는 -a 옵션을 사용하면 모든 Build Cache가 삭제됩니다.

다음 Docker Build에서는 캐시를 사용할 수 없으므로 빌드 시간이 증가할 수 있습니다.

세 번째는 운영 서버보다 개발 서버에서 더욱 자주 사용하는 명령어입니다.

운영 서버는 Build 작업이 많지 않기 때문에 Build Cache도 상대적으로 적게 생성됩니다.

네 번째는 Build Cache 삭제는 되돌릴 수 없습니다.

필요한 캐시는 다음 Build 과정에서 다시 생성됩니다.

Best Practice

Docker Builder Prune을 사용할 때는 다음과 같은 방법을 추천합니다.

  • 삭제 전에 docker system df로 Build Cache 사용량을 확인합니다.
  • 개발 서버에서는 주기적으로 Build Cache를 정리합니다.
  • 최근 캐시는 유지하고 오래된 캐시만 삭제합니다.
  • CI/CD 서버에서는 -f 옵션을 사용하여 자동화합니다.
  • 프로젝트 종료 후에는 -a 옵션으로 전체 캐시를 정리합니다.
  • Docker System Prune과 함께 정기적인 유지보수를 수행합니다.

이러한 방법을 적용하면 Build 성능과 저장 공간을 모두 효율적으로 관리할 수 있습니다.

자주 묻는 질문

Docker Builder Prune은 이미지도 삭제하나요?

아닙니다. Build Cache만 삭제하며 Docker 이미지에는 영향을 주지 않습니다.

Build Cache를 삭제하면 Docker Build가 느려지나요?

네. 캐시가 삭제되면 다음 Build는 처음부터 다시 수행되므로 평소보다 시간이 오래 걸릴 수 있습니다.

Build Cache만 확인할 수 있나요?

docker system df 명령을 실행하면 Build Cache 사용량을 함께 확인할 수 있습니다.

Docker Builder Prune과 Docker System Prune의 차이는 무엇인가요?

Docker Builder Prune은 Build Cache만 삭제합니다.

Docker System Prune은 Build Cache뿐 아니라 중지된 컨테이너, 사용하지 않는 네트워크, Dangling 이미지까지 함께 정리합니다.

마무리

Docker Builder Prune은 Build Cache만 선택적으로 삭제하여 저장 공간을 확보하는 데 특화된 명령어입니다.

Docker 이미지를 자주 빌드하는 개발 환경과 CI/CD 서버에서는 Build Cache가 빠르게 증가하므로 정기적으로 관리하는 것이 중요합니다.

특히 --filter 옵션을 활용하면 오래된 캐시만 삭제하여 Build 성능을 유지하면서도 디스크 공간을 효율적으로 확보할 수 있습니다.

Docker 서버를 장기간 안정적으로 운영하려면 Docker Builder Prune을 정기적인 유지보수 작업에 포함하는 것을 추천합니다.

댓글 남기기