Docker를 오래 사용하다 보면 테스트 이미지, 이전 버전 이미지, 빌드 실패 이미지 등이 계속 쌓이게 됩니다. 이러한 이미지들은 실제로 사용하지 않더라도 디스크 공간을 차지하기 때문에 서버 용량 부족의 원인이 될 수 있습니다.
특히 CI/CD 환경이나 개발 서버에서는 이미지를 자주 생성하고 삭제하기 때문에 주기적인 이미지 정리가 매우 중요합니다.
이럴 때 사용하는 명령어가 바로 docker image prune입니다.
Docker Image Prune은 사용하지 않는 Docker 이미지를 안전하게 삭제하는 명령어입니다. Dangling Image뿐 아니라 옵션을 사용하면 사용하지 않는 모든 이미지까지 정리할 수 있어 디스크 공간 확보에 매우 효과적입니다.
이번 글에서는 Docker Image Prune의 개념부터 기본 사용법, 삭제 대상, 주요 옵션, 실무 활용 사례까지 자세히 알아보겠습니다.
Docker Image Prune이란 무엇인가?
Docker Image Prune은 더 이상 사용되지 않는 Docker 이미지를 삭제하는 명령어입니다.
삭제 대상은 기본적으로 Dangling Image이며, 옵션을 사용하면 사용하지 않는 모든 이미지도 삭제할 수 있습니다.
Docker 디스크 공간 관리에서 가장 많이 사용하는 정리 명령어입니다.
Docker Image Prune은 언제 사용하는가?
다음과 같은 상황에서 자주 사용됩니다.
- 디스크 공간 부족
- 사용하지 않는 이미지 정리
- CI/CD 서버 관리
- 개발 서버 정리
- Docker 용량 최적화
- 오래된 이미지 제거
Docker를 장기간 운영하는 환경에서는 정기적으로 실행하는 것이 좋습니다.
Docker Image Prune 기본 사용법
가장 기본적인 명령어입니다.
docker image prune
실행하면 삭제 여부를 묻는 메시지가 출력됩니다.
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]
y를 입력하면 삭제가 진행됩니다.
확인 없이 삭제
자동화 환경에서는 다음 옵션을 사용합니다.
docker image prune -f
확인 메시지 없이 즉시 삭제됩니다.
CI/CD 환경에서 자주 사용됩니다.
사용하지 않는 모든 이미지 삭제
Dangling Image뿐 아니라 사용하지 않는 모든 이미지를 삭제하려면 다음과 같이 실행합니다.
docker image prune -a
주의해야 할 점은 컨테이너에서 사용 중이지 않은 이미지가 모두 삭제된다는 것입니다.
확인 없이 전체 삭제
전체 이미지를 자동으로 정리하려면 다음 명령을 사용합니다.
docker image prune -af
운영 서버에서는 실행 전에 삭제 대상을 반드시 확인하는 것이 좋습니다.
삭제 전 이미지 확인
현재 저장된 이미지를 확인합니다.
docker image ls
삭제 전에 어떤 이미지가 있는지 확인하는 습관을 들이는 것이 좋습니다.
삭제 후 디스크 확인
정리 후 Docker 디스크 사용량을 확인합니다.
docker system df
삭제 전후의 디스크 사용량을 비교할 수 있습니다.
Docker Image Prune으로 삭제되는 대상
기본적으로 다음 이미지가 삭제됩니다.
- Dangling Image
- 태그가 없는 이미지
- 빌드 중 남은 이미지
-a 옵션을 사용하면 다음도 삭제됩니다.
- 사용하지 않는 이미지
- 컨테이너에서 참조하지 않는 이미지
- 오래된 버전 이미지
Docker Image Prune의 특징
Docker Image Prune은 다음과 같은 특징을 가지고 있습니다.
- 디스크 공간 확보
- 이미지 정리 자동화 가능
- Dangling Image 삭제
- 사용하지 않는 이미지 삭제
- Docker 성능 유지에 도움
장기간 Docker를 운영할수록 더욱 중요한 관리 명령어입니다.
Docker Image Prune 실무 활용 예제
Docker Image Prune은 사용하지 않는 이미지를 삭제하여 Docker 저장 공간을 확보하는 명령어입니다. 개발 서버, CI/CD 서버, 운영 서버에서 디스크 용량을 효율적으로 관리하기 위해 자주 사용됩니다.
Dangling Image 삭제
가장 기본적인 사용 방법입니다.
docker image prune
출력 예시는 다음과 같습니다.
Deleted Images:
deleted: sha256:xxxxxxxx
Total reclaimed space: 1.2GB
사용되지 않는 Dangling Image만 삭제됩니다.
확인 없이 삭제
자동화 환경에서는 확인 메시지 없이 실행하는 것이 일반적입니다.
docker image prune -f
스크립트나 CI/CD 파이프라인에서 많이 사용하는 방식입니다.
사용하지 않는 모든 이미지 삭제
현재 어떤 컨테이너에서도 사용하지 않는 모든 이미지를 삭제합니다.
docker image prune -a
오래된 이미지와 이전 버전 이미지까지 함께 삭제됩니다.
전체 이미지 자동 정리
확인 과정 없이 전체 정리를 수행합니다.
docker image prune -af
정기적인 유지 관리 작업에서 많이 사용됩니다.
정리 후 디스크 사용량 확인
정리 효과를 확인하기 위해 Docker 저장 공간을 확인합니다.
docker system df
출력 예시입니다.
TYPE TOTAL ACTIVE SIZE
Images 8 4 2.1GB
Containers 3 2 200MB
Volumes 5 5 850MB
정리 전후의 용량을 비교할 수 있습니다.
Linux 서버 문제 해결
운영 서버에서 Docker 이미지를 자주 빌드하는 CI/CD 환경을 운영하고 있었습니다.
몇 달 동안 이미지를 정리하지 않아 다음과 같은 오류가 발생했습니다.
no space left on device
먼저 현재 Docker 저장 공간을 확인했습니다.
docker system df
이미지 사용량이 수십 GB까지 증가한 것을 확인했습니다.
사용하지 않는 이미지를 먼저 정리했습니다.
docker image prune -a
이후 다시 저장 공간을 확인했습니다.
docker system df
약 35GB 이상의 공간이 확보되었으며 이후 Docker 빌드도 정상적으로 수행되었습니다.
정기적으로 Image Prune을 실행하도록 Cron 작업도 함께 설정했습니다.
Docker Image Prune 사용 시 주의사항
Docker Image Prune을 사용할 때는 다음 사항을 알아두는 것이 좋습니다.
첫 번째는 기본적으로 Dangling Image만 삭제됩니다.
현재 사용 중인 이미지는 삭제되지 않습니다.
두 번째는 -a 옵션을 사용하면 컨테이너에서 사용하지 않는 모든 이미지가 삭제됩니다.
필요한 이미지가 없는지 반드시 확인하는 것이 좋습니다.
세 번째는 실행 중인 컨테이너의 이미지는 삭제되지 않습니다.
Docker가 자동으로 보호합니다.
네 번째는 중요한 이미지는 Registry에 업로드하거나 백업한 후 정리하는 것이 안전합니다.
Best Practice
Docker Image Prune을 사용할 때는 다음과 같은 방법을 추천합니다.
- 정리 전에
docker image ls로 이미지를 확인합니다. - 운영 서버에서는
-a옵션 사용 시 삭제 대상을 검토합니다. - CI/CD 서버에서는 주기적으로 자동 정리를 수행합니다.
- 중요한 이미지는 Docker Registry에 백업합니다.
docker system df로 정리 효과를 확인합니다.- Image Prune과 Builder Prune을 함께 사용하여 저장 공간을 최적화합니다.
이러한 방법을 적용하면 Docker 서버를 더욱 안정적으로 운영할 수 있습니다.
자주 묻는 질문
Docker Image Prune은 실행 중인 이미지도 삭제하나요?
아닙니다.
현재 컨테이너에서 사용 중인 이미지는 삭제되지 않습니다.
Dangling Image란 무엇인가요?
태그(Tag)가 없고 더 이상 참조되지 않는 이미지입니다.
빌드 과정에서 자주 생성됩니다.
-a 옵션은 안전한가요?
현재 컨테이너에서 사용하지 않는 이미지는 모두 삭제합니다.
필요한 이미지가 없는지 먼저 확인하는 것이 좋습니다.
Docker Image Prune과 Docker System Prune의 차이는 무엇인가요?
Docker Image Prune은 이미지만 삭제합니다.
Docker System Prune은 이미지뿐 아니라 컨테이너, 네트워크, 빌드 캐시 등도 함께 정리합니다.
마무리
Docker Image Prune은 사용하지 않는 Docker 이미지를 정리하여 저장 공간을 확보하는 핵심 관리 명령어입니다.
개발 서버와 CI/CD 환경에서는 정기적으로 실행하면 디스크 공간 부족 문제를 예방할 수 있으며, Docker 성능 유지에도 도움이 됩니다.
운영 환경에서는 삭제 대상을 충분히 확인한 후 사용하고, 중요한 이미지는 Registry나 백업 파일로 보관하는 습관을 들이면 더욱 안전하게 Docker를 운영할 수 있습니다.