본문 바로가기
K8S/Docker

Docker 로그 관리

by Rainbound-IT 2024. 1. 22.
반응형

 

 

서론

docker를 설치한뒤 로그가 많이 생기는 컨테이너가 있다.

약 30~40분만에 약 10MB정도 쌓인다.

 

docker의 /var/lib/docker/containers 경로를 보면 생성한 컨테이너에 로그를 보면 보통은 별로 안쌓이는데

큰 여러가지 많은 것이 설치된 컨테이너의 경우는 로그의 용량이 순식간에 늘어난다.

 

logrotate로 관리하면 될것 같은데 docker인데 docker 만의 로그 관리 기법이 있어서 포스팅한다.

 

 

관리 방법

 /etc/docker/폴더에 들어가서 daemon.json파일을 생성하여 다음과 같은 양식으로 만들어 준다.

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

 

형식과 파일 사이즈와 파일 갯수로 설정하면 됩니다.

 

그리고 반드시 systemctl restart docker 로 docker를 재실행을 해줘야 합니다.

systemctl restart docker

 

이때 컨테이너는 이 daemon.json 파일 생성이후 생성된 컨테이너어야 적용이 됩니다.

 

 

1m, 3개 파일로 설정한 뒤 log가 이런식으로 쌓인다.

 

 

 

 

 

 

실행시 적용하는 방법은 옵션을 다음과 같이 주면된다.

$ docker run \
    --log-driver json-file \
    --log-opt max-size=15m \
    --log-opt max-file=5 \
    nginx echo hello world

 

 

 

확인

docker inspect --format '{{.HostConfig.LogConfig}}' [container ID]로 확인이 가능하다.

 

 

 

Reference

https://docs.docker.com/config/containers/logging/json-file/

 

 

 

 

 

 

반응형

댓글