Nice programing

내 모든 디스크 공간을 차지하는 Docker 컨테이너 로그

nicepro 2020. 11. 27. 21:26
반응형

내 모든 디스크 공간을 차지하는 Docker 컨테이너 로그


VM에서 컨테이너를 실행하고 있습니다. 내 컨테이너는 디스크가 꽉 찰 때까지 기본적으로 /var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log 파일에 로그를 작성합니다.

현재 디스크가 가득 차지 않도록이 파일을 수동으로 삭제해야합니다. Docker 1.8에는 로그회전 하는 매개 변수가 있다는 것을 읽었습니다 . 현재 해결 방법으로 무엇을 권장 하시겠습니까?


Docker 1.8은 로그 회전 옵션과 함께 릴리스되었습니다. 첨가:

--log-opt max-size=50m 

컨테이너가 시작될 때 트릭을 수행합니다. https://docs.docker.com/engine/admin/logging/overview/ 에서 자세히 알아볼 수 있습니다.


주의 : 이것은 docker-compose 버전 2 전용입니다.

예:

version: '2'
services:
  db:
    container_name: db
    image: mysql:5.7
    ports:
      - 3306:3306
    logging:
      options:
        max-size: 50m

주의 :이 게시물은 1.8 미만의 Docker 버전 ( --log-opt옵션이 없음)과 관련이 있습니다.

logrotate (압축도 지원)를 사용하지 않는 이유는 무엇입니까?

/var/lib/docker/containers/*/*-json.log {
hourly
rotate 48
compress
dateext
copytruncate
}

CoreOs 노드에서 직접 구성하거나 / var / lib / docker를 마운트 하는 컨테이너 (예 : https://github.com/tutumcloud/logrotate )를 배포 하여 로그를 회전합니다.


컨테이너를 실행하는 동안 로그 옵션을 전달합니다. 예는 다음과 같습니다.

sudo docker run -ti --name visruth-cv-container  --log-opt max-size=5m --log-opt max-file=10 ubuntu /bin/bash

여기서는 --log-opt max-size=5m최대 로그 파일 크기를 5MB로 --log-opt max-file=10지정하고 회전 할 최대 파일 수를 지정합니다.

참고 URL : https://stackoverflow.com/questions/31829587/docker-container-logs-taking-all-my-disk-space

반응형