Docker를 오랫동안 사용하다 보면 테스트용 컨테이너를 만들고 삭제하는 과정이 반복됩니다. 이 과정에서 컨테이너는 삭제되지만 Docker Volume은 그대로 남아 있는 경우가 많습니다. 이러한 사용하지 않는 Volume이 계속 쌓이면 수 GB에서 수십 GB의 저장 공간을 차지하게 되어 디스크 용량 부족의 원인이 될 수 있습니다.
특히 개발 서버나 CI/CD 환경에서는 수백 개의 Volume이 생성되고 방치되는 경우가 많아 정기적인 정리가 필요합니다.
이럴 때 사용하는 명령어가 바로 docker volume prune입니다.
Docker Volume Prune은 현재 어떤 컨테이너에서도 사용하지 않는 Docker Volume을 한 번에 삭제하는 명령어입니다. 하나씩 삭제하는 docker volume rm보다 훨씬 효율적이며 디스크 공간을 빠르게 확보할 수 있습니다.
이번 글에서는 Docker Volume Prune의 개념부터 기본 사용법, 삭제 대상, 주요 옵션, 실무 활용 방법까지 자세히 알아보겠습니다.
Docker Volume Prune이란 무엇인가?
Docker Volume Prune은 사용되지 않는 Docker Volume을 한 번에 삭제하는 관리 명령어입니다.
현재 어떤 컨테이너에도 연결되어 있지 않은 Volume만 삭제하므로 불필요한 데이터를 빠르게 정리할 수 있습니다.
Docker를 장기간 운영하는 서버에서는 디스크 관리 차원에서 자주 사용하는 명령어입니다.
Docker Volume Prune은 언제 사용하는가?
다음과 같은 상황에서 많이 사용합니다.
- 테스트 환경 정리
- 프로젝트 종료 후 데이터 정리
- 사용하지 않는 Volume 삭제
- 디스크 용량 확보
- CI/CD 서버 정리
- 개발 환경 초기화
운영 서버보다는 개발 서버에서 더욱 자주 사용되지만, 운영 환경에서도 정기적인 유지보수 작업에 활용됩니다.
Docker Volume Prune 기본 사용법
가장 기본적인 실행 방법입니다.
docker volume prune
명령을 실행하면 삭제 여부를 묻는 메시지가 출력됩니다.
WARNING! This will remove anonymous local volumes not used by at least one container.
Are you sure you want to continue? [y/N]
계속 진행하려면 y를 입력하면 됩니다.
삭제가 완료되면 다음과 같은 결과가 출력됩니다.
Deleted Volumes:
2f5d1f9d...
ab98c2d...
Total reclaimed space: 4.8GB
삭제된 Volume 목록과 확보된 디스크 용량을 함께 확인할 수 있습니다.
확인 메시지 없이 바로 삭제하기
자동화 스크립트에서는 확인 메시지를 생략하는 경우가 많습니다.
docker volume prune -f
-f 또는 --force 옵션을 사용하면 즉시 삭제가 진행됩니다.
CI/CD 환경에서도 자주 사용하는 방법입니다.
삭제 대상은 무엇인가?
Docker Volume Prune은 모든 Volume을 삭제하는 것이 아닙니다.
삭제 대상은 다음과 같습니다.
- 어떤 컨테이너에서도 사용하지 않는 Volume
- 익명(Anonymous) Volume
- 연결이 해제된 오래된 Volume
반대로 다음 Volume은 삭제되지 않습니다.
- 실행 중인 컨테이너에서 사용하는 Volume
- 중지된 컨테이너가 참조하는 Volume
- 현재 연결된 Named Volume
즉, Docker가 필요하다고 판단하는 Volume은 안전하게 유지됩니다.
Docker Volume Prune 실무 활용 예제
Docker Volume Prune은 개발 환경이나 CI/CD 서버에서 가장 많이 사용하는 Docker 정리 명령어 중 하나입니다. 사용하지 않는 Volume을 한 번에 제거하여 디스크 공간을 확보하고 Docker 환경을 깔끔하게 유지할 수 있습니다.
사용하지 않는 Volume 모두 삭제하기
가장 기본적인 사용 방법입니다.
docker volume prune
삭제 여부를 확인한 후 사용하지 않는 Volume을 모두 제거합니다.
확인 메시지 없이 즉시 삭제하기
자동화 환경에서는 -f 옵션을 함께 사용하는 경우가 많습니다.
docker volume prune -f
사용자의 확인 없이 즉시 삭제가 진행됩니다.
삭제 전 Volume 목록 확인하기
삭제하기 전에 현재 Volume 목록을 확인하는 것이 좋습니다.
docker volume ls
필요한 Volume이 있는지 먼저 확인하면 실수로 중요한 데이터를 삭제하는 일을 예방할 수 있습니다.
특정 Volume 정보 확인하기
삭제가 걱정된다면 먼저 상세 정보를 확인합니다.
docker volume inspect mysql_data
Mountpoint와 Driver 등을 확인한 후 삭제 여부를 결정하는 것이 안전합니다.
디스크 사용량 확인하기
Volume 정리 전후의 디스크 용량을 비교해 보면 효과를 쉽게 확인할 수 있습니다.
df -h
또는 Docker 전체 사용량을 확인합니다.
docker system df
Volume 정리 전후의 저장 공간 차이를 쉽게 확인할 수 있습니다.
Linux 서버 문제 해결
CI/CD 서버를 수개월 동안 운영한 결과 디스크 사용량이 95%까지 증가하는 문제가 발생했습니다.
원인을 조사해 보니 테스트 과정에서 생성된 Docker Volume이 수백 개 이상 남아 있었고, 대부분 어떤 컨테이너에서도 사용하지 않는 상태였습니다.
먼저 현재 Volume을 확인했습니다.
docker volume ls
Docker 전체 사용량도 함께 확인했습니다.
docker system df
사용하지 않는 Volume만 한 번에 삭제했습니다.
docker volume prune -f
정리 후 다시 디스크 용량을 확인한 결과 약 35GB의 저장 공간을 확보할 수 있었습니다.
개발 서버와 CI/CD 서버에서는 이러한 정리 작업을 정기적으로 수행하면 디스크 부족 문제를 예방할 수 있습니다.
Docker Volume Prune 사용 시 주의사항
Docker Volume Prune을 사용할 때는 다음 사항을 반드시 확인해야 합니다.
첫 번째는 삭제 대상이 사용하지 않는 Volume이라는 점입니다.
현재 컨테이너에서 사용하는 Volume은 삭제되지 않지만, 앞으로 사용할 예정인 Volume이 컨테이너와 연결되어 있지 않다면 삭제될 수 있습니다.
두 번째는 중요한 데이터가 있는 Volume인지 먼저 확인해야 합니다.
필요하다면 docker volume inspect를 이용하여 정보를 확인한 후 백업을 수행하는 것이 좋습니다.
세 번째는 자동화 스크립트에서 -f 옵션을 사용할 경우 예상하지 못한 Volume이 삭제되지 않도록 충분한 검토가 필요합니다.
네 번째는 운영 서버에서는 유지보수 시간에 실행하는 것이 안전합니다.
Best Practice
Docker Volume Prune을 사용할 때는 다음과 같은 방법을 추천합니다.
- 삭제 전
docker volume ls로 목록을 확인합니다. - 중요한 데이터는 반드시 백업합니다.
docker volume inspect로 상세 정보를 확인합니다.- 개발 서버에서는 정기적으로 실행합니다.
- CI/CD 서버에서는 자동 정리 작업을 구성합니다.
- 운영 서버에서는 유지보수 시간에 실행합니다.
이러한 관리 방법을 적용하면 Docker 저장 공간을 효율적으로 유지할 수 있습니다.
자주 묻는 질문
Docker Volume Prune은 모든 Volume을 삭제하나요?
아니요.
현재 어떤 컨테이너에서도 사용하지 않는 Volume만 삭제합니다.
실행 중인 컨테이너의 Volume도 삭제되나요?
아닙니다.
실행 중이거나 연결된 컨테이너의 Volume은 삭제되지 않습니다.
docker volume rm과 차이점은 무엇인가요?
docker volume rm은 특정 Volume 하나를 삭제하고, docker volume prune은 사용하지 않는 Volume을 한 번에 삭제합니다.
운영 서버에서도 사용해도 되나요?
가능하지만 삭제 전에 반드시 Volume 사용 여부를 확인하고 중요한 데이터는 백업하는 것이 좋습니다.
마무리
Docker Volume Prune은 사용하지 않는 Docker Volume을 한 번에 정리하여 디스크 공간을 확보하는 매우 유용한 관리 명령어입니다.
특히 개발 환경과 CI/CD 서버에서는 오래된 Volume이 지속적으로 쌓이기 때문에 정기적으로 실행하면 저장 공간을 효율적으로 관리할 수 있습니다.
다만 삭제된 Volume은 복구가 어려울 수 있으므로 실행 전에는 반드시 목록과 상세 정보를 확인하고 필요한 데이터는 백업하는 습관을 가지는 것이 안전한 Docker 운영의 핵심입니다.