K8S/Docker

Docker 로그 관리

Rainbound-IT 2024. 1. 22. 10:58
반응형

목차

     

     

    서론

    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/

     

     

     

     

     

     

    반응형