시스템에 Docker를 설치하고 사용하면, 백그라운드에서 인지하지 못하는 사이에 Docker에서 실행 중인 컨테이너가 많은 양의 로그를 생성할 수 있다.

Docker 서비스는 일반적으로 logrotate를 지원하지만, 이 지원은 기본적으로 꺼져 있다. 어느 날 갑자기 디스크가 가득 차면, 내가 무슨 말을 하는지 정확히 알게 될 것이다. : )

서버에 Docker 서비스를 처음 설치하고 컨테이너를 처음 실행하는 경우, 아래 단계를 따르면 된다.

Docker 서비스가 중지된 상태에서, 먼저 Docker 서비스가 logrotate 작업을 위해 필요로 하는 파일을 텍스트 편집기로 연다. 내 취향은 vim이다, vim을 사용했다. nano, pico와 같은 다른 편집기를 선택할 수도 있다.

sudo vim /etc/docker/daemon.json

그런 다음 이 파일에 다음 줄을 추가하고 저장 후 닫는다.

{
 "log-driver": "json-file",
 "log-opts": {
     "max-size": "10m",
     "max-file": "3"
     }
 }

이제 Docker 서비스를 재시작하는 것을 잊지 말자.

sudo systemctl restart docker

이제 Docker 서비스가 "/var/lib/docker/containers/CONTAINERID/" 경로 아래에서 로그 로테이션을 시작했다.