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/dockerDocker의 심장이며,
docker system prune -af --volumes는 이 디렉토리를 가볍고 깨끗하게 유지하는 가장 강력한 도구입니다.


요약 한 줄 💡

Docker 사용 = /var/lib/docker 정기 정리 필수

728x90
반응형