개발 환경에서 mkdir: cannot create direcry ... No space left on device 에러 발생 시 디스크 용량 점검부터 Docker 로그 정리까지 수행한 절차
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의 디스크 공간을 확보 가능
그 외, prune 명령어
docker system df # 어떤 게 얼마나 쓰는지 확인
docker container prune # 중지된 컨테이너 삭제
docker image prune -a # 안 쓰는 이미지 전부 삭제
docker volume prune # 안 쓰는 볼륨 삭제
docker network prune # 안 쓰는 네트워크 삭제
'etc' 카테고리의 다른 글
| RabbitMQ 4.3.0 이후 버전 Spring Cloud Bus 큐 생성 실패 트러블슈팅 (0) | 2026.05.27 |
|---|---|
| Windows Server Docker 지원 현황 (2) | 2025.06.13 |
| bash_profile 꾸미기 (0) | 2025.01.30 |