현상

docker 사용 시, 어느 시점에 /var/lib/docker 용량이 90GB를 넘으면서, 전체 서버 용량을 차지하는 현상 발생

 

1. 디스크 용량 확인

df -h

→ /dev/vda1 사용률이 100%로 확인됨. 주로 /var 아래가 문제인 경우가 많음.


2. /var 디렉토리 용량 분석

sudo du -sh /* 2>/dev/null | sort -hr | head -n 10
sudo du -sh /var/* | sort -hr | head -n 10

→ /var/lib가 대부분을 차지하고 있었음 (91GB)


3. /var/lib/docker 세부 분석

sudo du -sh /var/lib/docker/*

초기에 Permission denied 에러 발생했으므로 다음과 같이 실행:

sudo bash -c 'du -sh /var/lib/docker/* | sort -hr | head -n 20'

→ /var/lib/docker/containers 가 85GB 로 압도적


4. Docker 로그 파일만 삭제 (핵심)

Docker 컨테이너 로그는 기본적으로 json-file 형식으로 저장됨:

/var/lib/docker/containers/<container-id>/<container-id>-json.log

모든 컨테이너 로그 파일 일괄 삭제:

sudo find /var/lib/docker/containers/ -name '*-json.log' -type f -delete


5. 용량 재확인

sudo bash -c 'du -sh /var/lib/docker/* | sort -hr | head -n 20'
df -h

→ /var/lib/docker/containers 가 436KB로 줄어들고, 전체 디스크 용량도 회복됨


6. Docker 로그 재발 방지 설정 (예방법)

로그 파일 크기 제한 및 순환 설정:

sudo vi /etc/docker/daemon.json
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

설정 반영:

sudo systemctl restart docker

결론

  • docker system prune -a --volumes 로 전체 정리도 가능(신중)
  • 단순 로그 정리만으로도 수십 GB의 디스크 공간을 확보 가능

 

# 출처

https://noli.tistory.com/105

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기