로컬 파일 로깅 드라이버

로컬 파일 로깅 드라이버 (Local file logging driver)

local 로깅 드라이버는 컨테이너의 stdout/stderr 출력을 캡처해 성능과 디스크 사용에 최적화된 내부 스토리지에 써요.

기본적으로 local 드라이버는 컨테이너당 100MB의 로그 메시지를 보존하고, 디스크 크기를 줄이기 위해 자동 압축을 사용해요. 100MB 기본값은 각 파일의 기본 크기 20M와 그러한 파일 수의 기본 개수 5(로그 회전 설명)에 기반해요.

Warning local 로깅 드라이버는 파일 기반 스토리지를 사용해요. 이 파일은 Docker 데몬이 독점적으로 접근하도록 설계됐어요. 외부 도구로 이 파일과 상호작용하면 Docker의 로깅 시스템을 방해하고 예기치 않은 동작을 초래할 수 있으므로 피해야 해요.

출처: 문서

본문

사용법 (Usage)

local 드라이버를 기본 로깅 드라이버로 사용하려면 daemon.json 파일에서 log-driverlog-opt 키를 적절한 값으로 설정해요. daemon.json으로 Docker를 구성하는 것에 대한 자세한 내용은 daemon.json을 참고하세요.

Note Docker Desktop을 사용한다면 Docker Desktop Dashboard를 통해 데몬 구성을 편집해요. Settings를 열고 Docker Engine을 선택해요. 자세한 내용은 Docker Engine 설정을 참고하세요.

다음 예시는 로그 드라이버를 local로 설정하고 max-size 옵션을 설정해요.

{
  "log-driver": "local",
  "log-opts": {
    "max-size": "10m"
  }
}

변경 사항을 적용하려면 Docker를 재시작해요. 이 변경은 새로 생성된 컨테이너에 적용돼요. 기존 컨테이너는 새 로깅 구성을 자동으로 사용하지 않아요.

docker container create 또는 docker run--log-driver 플래그를 사용해 특정 컨테이너의 로깅 드라이버를 설정할 수 있어요:

$ docker run \
      --log-driver local --log-opt max-size=10m \
      alpine echo hello world

참고로 local은 bash 예약 키워드이므로 스크립트에서 따옴표로 감싸야 할 수도 있어요.

옵션 (Options)

local 로깅 드라이버는 다음 로깅 옵션을 지원해요:

Option Description Example value
max-size 회전 전 로그의 최대 크기. 양의 정수 + 단위 수정자(k, m, g; 대소문자 무시). 기본값은 20m이에요. --log-opt max-size=10m
max-file 존재할 수 있는 최대 로그 파일 수. 로그 회전으로 초과 파일이 생기면 가장 오래된 파일이 제거돼요. 양의 정수. 기본값은 5이에요. --log-opt max-file=3
compress 회전된 로그 파일의 압축 토글. 기본으로 활성화. --log-opt compress=false

예시 (Examples)

이 예시는 각각 10MB를 초과하지 않는 최대 3개의 로그 파일을 가질 수 있는 alpine 컨테이너를 시작해요.

$ docker run -it --log-driver local --log-opt max-size=10m --log-opt max-file=3 alpine ash

더 알아보기 (Learn more)