Ops
Docker, host storage full 문제 해결
ingeeC
2018. 10. 23. 17:38
도커 운영 중, 호스트 머신의 스토리지가 가득찼을 때
현상
docker storage를 충분한 크기로 적절히 설정하고 운영함에도 host 머신의 스토리지가 full 되는 경우가 있다.
# df Filesystem Size Used Avail Use% Mounted on /dev/vda1 10G 3.9G 6.2G 39% / /dev/vdc1 10G 10G 0 100% /var /dev/vdd1 100G 7.5G 93G 8% /home ...
설명
- /var/lib/docker/containers/
디렉토리 아래, <container-id>/<container-id>-json.log 파일이 스토리지를 모두 차지했을 수 있다 - 이 파일은 도커가 docker logs 명령 실행시 출력할 로그를 저장하는 파일이다 (docker storage에 저장되지 않고 host 머신의 파일 시스템을 소진한다)
- 도커 실행시 max-size 옵션을 설정하면 로그 파일의 크기를 제한할 수 있다
- 도커 실행시 max-file 옵션을 설정하면 로그 파일의 개수를 제한할 수 있다 (log rotate 효과)
해법
$ sudo vi /etc/docker/daemon.json ...다음 내용 추가... { "log-driver": "json-file", "log-opts": { "mode": "non-blocking", "max-size": "4m", "max-file": "3" } } $ sudo systemctl restart docker
Ref
- Set container log limits when Docker is filling up /var/lib/docker with large log files.
- Configure logging drivers
- About images, containers, and storage drivers