Ubuntu
[Docker] 디스크 용량 100% 문제 해결: docker system prune -af --volumes + /var/lib/docker 완전 정리
너드나무
2025. 5. 2. 09:07
반응형
📌 문제 상황: 어느 날 갑자기 서버가 멈췄다?
개발 서버에서 컨테이너 기반 애플리케이션을 운영 중,
갑작스럽게 디스크 사용량이 100%로 치솟으며 서버가 응답하지 않기 시작했습니다.
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 40G 40G 0 100% /
로그 확인도 안 되고, 서비스 재시작도 불가.
결국 원인을 추적해보니 핵심은 바로...
/var/lib/docker
🧭 원인: Docker의 모든 데이터는 /var/lib/docker에 저장된다
📁 /var/lib/docker는 Docker의 "실질적 저장소"입니다
Docker는 컨테이너 실행 중 생기는 모든 파일을 /var/lib/docker 하위에 저장합니다.
여기에는 다음과 같은 요소들이 포함됩니다:
경로 | 설명 |
/var/lib/docker/containers | 실행되었거나 중지된 모든 컨테이너의 로그, 설정, 상태 |
/var/lib/docker/overlay2 | 이미지 레이어 및 컨테이너 파일시스템 (대부분 용량 차지) |
/var/lib/docker/volumes | Docker 볼륨에 저장된 데이터 (예: DB, 파일) |
/var/lib/docker/image | Pull된 이미지 캐시 |
즉, 여러 번 컨테이너를 띄우고 지웠다고 생각해도, 관련 데이터는 이 디렉토리에 누적되고 있던 것입니다.
🧹 해결 방법: docker system prune -af --volumes
✅ 명령어
$ docker system prune -af --volumes
Deleted Containers:
c1d2e3...
...
Deleted Images:
untagged: ...
...
Deleted Volumes:
my_volume1
my_volume2
Total reclaimed space: 15.4GB
주요 효과:
- /var/lib/docker/containers : 하위의 중지된 컨테이너 데이터 삭제
- /var/lib/docker/overlay2 : 하위의 사용되지 않는 이미지 레이어 정리
- /var/lib/docker/volumes : 하위의 dangling 볼륨 제거
결과:
$ du -sh /var/lib/docker
40G /var/lib/docker → 10G로 감소
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 40G 24G 16G 60% /
📚 /var/lib/docker 내 리소스 개념 정리
디렉토리 | 설명 | prune 시 정리 여부 |
containers/ | 중지된 컨테이너 메타/로그 파일 | ✅ 제거됨 |
overlay2/ | 이미지 레이어 및 컨테이너 파일 시스템 | ✅ 정리됨 |
volumes/ | Docker 볼륨 데이터 (db, 로그 등) | ✅ --volumes 옵션 필요 |
image/ | Docker 이미지 캐시 | ✅ 정리됨 |
📝 참고: 운영 중인 컨테이너의 데이터는 삭제되지 않음. 정지된 것만 제거됨
⚠️ 실전 팁
확인 명령어
- 현재 디스크 사용량 확인
sudo du -sh /var/lib/docker/*
- 사용되지 않는 볼륨 확인
docker volume ls -f dangling=true
주기적 정리 자동화 (cron 예시)
0 4 * * 0 /usr/bin/docker system prune -af --volumes >> /var/log/docker-prune.log 2>&1
✅ 결론: /var/lib/docker를 비워야 진짜 디스크가 산다
많은 경우, Docker가 디스크를 "잠식"하고 있다는 것을 까맣게 잊고 있습니다.
그러나 /var/lib/docker는 Docker의 심장이며,
docker system prune -af --volumes는 이 디렉토리를 가볍고 깨끗하게 유지하는 가장 강력한 도구입니다.
요약 한 줄 💡
Docker 사용 = /var/lib/docker 정기 정리 필수
728x90
반응형