Docker System Prune 사용법 완벽 가이드! Docker 전체 정리하기

Docker를 오랫동안 사용하다 보면 사용하지 않는 이미지, 중지된 컨테이너, 불필요한 네트워크, 빌드 캐시 등이 계속 쌓이게 됩니다. 이러한 리소스는 서비스를 실행하지 않더라도 디스크 공간을 차지하며, 서버 용량 부족이나 관리 효율 저하의 원인이 될 수 있습니다.

특히 개발 서버나 CI/CD 서버처럼 이미지를 자주 빌드하고 컨테이너를 반복 생성하는 환경에서는 정기적인 Docker 정리가 매우 중요합니다.

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

Docker System Prune은 사용하지 않는 Docker 리소스를 한 번에 정리하는 명령어입니다. 이미지, 컨테이너, 네트워크, 빌드 캐시 등을 동시에 삭제하여 디스크 공간을 크게 확보할 수 있습니다.

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

Docker System Prune이란 무엇인가?

Docker System Prune은 Docker에서 더 이상 사용하지 않는 리소스를 한 번에 삭제하는 관리 명령어입니다.

개별적으로 Image Prune, Container Prune, Network Prune, Builder Prune을 실행하지 않아도 한 번의 명령으로 정리할 수 있습니다.

Docker 유지보수에서 가장 많이 사용하는 관리 명령어 중 하나입니다.

Docker System Prune은 언제 사용하는가?

다음과 같은 상황에서 자주 사용됩니다.

  • 디스크 공간 부족
  • Docker 리소스 정리
  • 개발 서버 관리
  • CI/CD 서버 관리
  • 오래된 리소스 삭제
  • Docker 환경 최적화

장기간 Docker를 운영하는 환경에서는 정기적인 실행이 권장됩니다.

Docker System Prune 기본 사용법

가장 기본적인 명령어입니다.

docker system prune

실행하면 다음과 같은 확인 메시지가 출력됩니다.

WARNING! This will remove:
- all stopped containers
- all networks not used
- dangling images
- build cache

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

y를 입력하면 정리가 시작됩니다.

확인 없이 실행

자동화 환경에서는 다음과 같이 사용합니다.

docker system prune -f

확인 메시지 없이 즉시 실행됩니다.

사용하지 않는 모든 이미지까지 삭제

기본적으로는 Dangling Image만 삭제됩니다.

사용하지 않는 모든 이미지를 삭제하려면 다음 옵션을 사용합니다.

docker system prune -a

운영 서버에서는 실행 전에 삭제 대상을 반드시 확인하는 것이 좋습니다.

전체 자동 정리

자동화 서버에서는 다음 명령을 자주 사용합니다.

docker system prune -af

불필요한 Docker 리소스를 모두 자동으로 정리합니다.

삭제 전 Docker 저장 공간 확인

현재 Docker 저장 공간을 확인합니다.

docker system df

정리 전후의 디스크 사용량을 비교할 수 있습니다.

Docker System Prune으로 삭제되는 대상

기본적으로 다음 항목이 삭제됩니다.

  • 중지된 컨테이너
  • 사용하지 않는 네트워크
  • Dangling Image
  • Build Cache

-a 옵션을 추가하면 다음 항목도 삭제됩니다.

  • 사용하지 않는 Docker 이미지
  • 오래된 이미지
  • 컨테이너에서 참조하지 않는 이미지

Docker System Prune의 특징

Docker System Prune은 다음과 같은 특징이 있습니다.

  • Docker 전체 정리
  • 디스크 공간 확보
  • 여러 Prune 명령을 한 번에 실행
  • CI/CD 환경에 적합
  • 유지보수 작업 간소화

Docker 관리 효율을 크게 높여주는 핵심 명령어입니다.

Docker System Prune 실무 활용 예제

Docker System Prune은 사용하지 않는 Docker 리소스를 한 번에 정리하는 명령어입니다. 개발 서버, 테스트 서버, CI/CD 환경에서 디스크 공간을 확보하고 Docker 환경을 깔끔하게 유지하기 위해 자주 사용됩니다.

기본 정리 실행

가장 기본적인 사용 방법입니다.

docker system prune

출력 예시는 다음과 같습니다.

Deleted Containers:
xxxxxxxx

Deleted Networks:
xxxxxxxx

Deleted Images:
xxxxxxxx

Deleted build cache:
xxxxxxxx

Total reclaimed space: 3.8GB

사용하지 않는 Docker 리소스가 정리됩니다.

확인 없이 자동 실행

자동화 환경에서는 다음과 같이 사용합니다.

docker system prune -f

확인 메시지 없이 즉시 정리가 수행됩니다.

사용하지 않는 모든 이미지까지 삭제

기본적으로는 Dangling Image만 삭제됩니다.

사용하지 않는 모든 이미지를 함께 삭제하려면 다음과 같이 실행합니다.

docker system prune -a

오래된 이미지까지 함께 삭제됩니다.

전체 자동 정리

자동 유지보수 작업에서는 다음 명령을 많이 사용합니다.

docker system prune -af

Docker 서버를 주기적으로 정리할 때 많이 사용하는 명령입니다.

정리 전후 디스크 사용량 확인

정리 효과를 확인하려면 다음 명령을 실행합니다.

docker system df

출력 예시입니다.

TYPE            TOTAL     ACTIVE    SIZE
Images          10        4         8.5GB
Containers      12        2         450MB
Volumes         8         6         2GB
Build Cache     42                  15GB

System Prune 실행 후에는 사용하지 않는 리소스가 제거되어 저장 공간이 크게 줄어든 것을 확인할 수 있습니다.

Linux 서버 문제 해결

CI/CD 서버에서 Docker 이미지를 지속적으로 빌드하고 테스트 컨테이너를 반복 생성하는 환경을 운영하고 있었습니다.

어느 날 Docker 빌드가 다음과 같은 오류와 함께 실패했습니다.

no space left on device

먼저 Docker 저장 공간을 확인했습니다.

docker system df

이미지, 중지된 컨테이너, Build Cache가 수십 GB를 차지하고 있는 것을 확인했습니다.

사용하지 않는 리소스를 모두 정리했습니다.

docker system prune -af

정리가 완료된 후 다시 저장 공간을 확인했습니다.

docker system df

약 50GB 이상의 공간이 확보되었고 이후 Docker Build와 컨테이너 실행이 모두 정상적으로 동작했습니다.

운영 이후에는 매주 자동으로 System Prune을 실행하도록 유지보수 작업을 추가했습니다.

Docker System Prune 사용 시 주의사항

Docker System Prune을 사용할 때는 다음 사항을 알아두는 것이 좋습니다.

첫 번째는 실행 중인 컨테이너는 삭제되지 않습니다.

Docker가 자동으로 보호하므로 서비스에는 영향을 주지 않습니다.

두 번째는 -a 옵션을 사용하면 사용하지 않는 이미지까지 삭제됩니다.

필요한 이미지가 있는지 반드시 확인한 후 실행하는 것이 좋습니다.

세 번째는 Volume은 기본적으로 삭제되지 않습니다.

데이터 손실을 방지하기 위한 Docker의 기본 동작입니다.

네 번째는 운영 서버에서는 유지보수 시간에 실행하는 것이 안전합니다.

예상치 못한 이미지 삭제를 방지할 수 있습니다.

Best Practice

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

  • 실행 전 docker system df로 저장 공간을 확인합니다.
  • 운영 서버에서는 -a 옵션 사용 전에 삭제 대상을 점검합니다.
  • 중요한 이미지는 Registry에 백업합니다.
  • CI/CD 서버에서는 주기적인 자동 정리를 설정합니다.
  • 데이터가 저장된 Volume은 별도로 관리합니다.
  • Image Prune, Builder Prune과의 차이를 이해하고 상황에 맞게 사용합니다.

이러한 방법을 적용하면 Docker 서버를 더욱 안정적이고 효율적으로 운영할 수 있습니다.

자주 묻는 질문

Docker System Prune은 무엇을 삭제하나요?

중지된 컨테이너, 사용하지 않는 네트워크, Dangling Image, Build Cache를 삭제합니다.

-a 옵션을 사용하면 사용하지 않는 Docker 이미지도 함께 삭제됩니다.

실행 중인 컨테이너는 삭제되나요?

아닙니다.

현재 실행 중인 컨테이너는 삭제되지 않습니다.

Docker Volume도 삭제되나요?

기본적으로는 삭제되지 않습니다.

Volume까지 삭제하려면 별도의 옵션이나 docker volume prune 명령을 사용해야 합니다.

Docker System Prune을 자주 실행해도 되나요?

네.

개발 서버나 CI/CD 환경에서는 주기적으로 실행하는 것이 일반적입니다.

다만 운영 서버에서는 삭제 대상과 실행 시점을 충분히 확인하는 것이 좋습니다.

마무리

Docker System Prune은 사용하지 않는 Docker 리소스를 한 번에 정리하여 저장 공간을 확보하고 Docker 환경을 효율적으로 관리할 수 있는 핵심 명령어입니다.

특히 이미지, 컨테이너, 네트워크, Build Cache를 동시에 정리할 수 있어 개발 서버와 CI/CD 환경에서 매우 유용하며, 정기적으로 실행하면 디스크 공간 부족 문제를 예방할 수 있습니다.

운영 환경에서는 삭제 대상과 영향 범위를 충분히 확인한 후 실행하는 습관을 들이면 더욱 안정적인 Docker 운영이 가능합니다.

댓글 남기기