Docker logging driver

Younghwan Cha·2023년 3월 14일
0

Docker

목록 보기
3/18
post-thumbnail

Logging Driver

Docker 에서는 실행 중인 컨테이너와 서비스로부터 정보를 가져오기 위한 다양한 logging mechanism 을 포함하고 있는 데,
이를 logging driver 라고 한다.
Docker 에서는 기본적인 logging drvier 로 컨테이너 log 를 JSON 으로 반환하는 json-file 을 사용하고 있다.
하지만 log-rotation 이 구현되어 있지 않기 때문에 json-file logging driver 로 인해 쌓인 log 들로 인하여
디스크 용량에 무리가 가게 된다.

log-rotation?
일정 단위의 log file 들을 일정한 주기로 백업 또는 별도 처리를 통해서 관리하는 작업을 말한다
[log-rotation] https://jins-dev.tistory.com/entry/Log-Rotation-Roll-the-log-%EB%A1%9C%EA%B7%B8-%EB%A1%A4%EB%A7%81%EB%A1%9C%ED%85%8C%EC%9D%B4%EC%85%98%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC

이전 버전의 Docker 와의 호환성을 위해서 logging driver 로 json-file 을 사용하고 있지만,
보통의 경우 logging driver 로 local 을 사용하는 것이 권장된다. local 의 경우 log-ration 을 지원하고, 더 효율적인 파일 포멧을 사용한다.
이와 관련된 설정은 /etc/docker/daemon.json 에 저장하고 관리한다.
daemon.jsonlog-driver 에서 logging driver 를 지정하고 log-opts 에 이와 관련된 설정을 기입하면 된다.

// daemon.json

{
	"log-driver": "local" [ DEFAULT: json-file ]
  	"log-opts": {
  		"max-size": "10m",
    	"max-file": "3",
    	"labels": "production_status",
    	"env": "os,customer"
	}
}

수정 이후에는 docker service 를 재시작하고 docker info 명령어를 통해서 log driver 가 바뀐 것을 확인 할 수 있다.

[docker logging driver] https://docs.docker.com/config/containers/logging/configure/


추가적으로, modeblock, non-blocking 이라는 개념이 있는데 이와 관련해서 차후에 정리해보도록하자.

[log mode] https://docs.docker.com/config/containers/logging/configure/#configure-the-delivery-mode-of-log-messages-from-container-to-log-driver

profile
개발 기록

0개의 댓글