Docker log 확인 및 다뤄보기
2022. 1. 26. 03:12ㆍDevOps/Docker & kubernetes
기본적으로 표준 출력과 표준 오류 라는 개념이 있다. 어플리케이션에서 log를 다룰때는 해당 프레임워크에서 제공하는 logframework를 사용하거나 syslog등으로 보낸다거나 EC등 다양한 방식으로 보낸다. 도커 컨테이너에서는 어플리케이션에서 로그를 표준 출력, 오류(stdout, stderr)로 보내는것을 표준으로 삼는다. 컨테이너에서 출력, 오류로 발송 시키면 이 로그를 쌓아서 드라이버가 처리하도록 해 주기에 사용 목적에 맞게 잘 선택하면 된다. 기본적으로는 json-file을 사용하곤 한다.
docker logs [container]
==> 해당 컨테이너의 전체 로그를 확인할 수 있다.
docker logs --tail 10 [container]
==> 전체 로그의 특정 마지막 로그(10개)를 확인할 수 있다.
docker logs -f [container]
==> 해당 컨테이너의 로그 스트림을 실시간으로 확인할 수 있게 해 준다.
docker logs -f -t [container]
==> 로그마다 시간을 표기해 준다.
이런 로그들을 호스트 상에서 json-file으로 저장된 경로를 확인하고 싶을때는 아래의 명령어를 사용하면 된다.
cat /var/lib/docker/containers/${CONTAINER_ID}/${CONTAINER_ID}-json.log
기본적으로 도커 엔진을 운영체제에 설치하게 되면 로그 용량에 대한 설정값은 없다. 그렇기에 컨테이너 단위, 혹은 도커 엔진 단위에서도 설정할 수 도 있다.
docker run \
-d \
--log-driver=json-file\
--log-opt max-size=3m \
--log-opt max-file=5
nginx
컨테이너 실행시 로그 드라이버, 로그 옵션을 전달하는 2가지 옵션이 있다.
한개의 로그 파일당 최대 3mb이며, 최대 파일은 5개로 로테이팅 시킨다는 의미이다.
아래의 표는 도커가 지원하는 드라이버들이다. 혹 영어를 잘 한다면 아래의 링크를 확인해 보는것도 좋다.
'DevOps > Docker & kubernetes' 카테고리의 다른 글
Dockerfile 문법정리 (0) | 2022.01.28 |
---|---|
Docker image Build(도커 이미지 빌드하기) (0) | 2022.01.28 |
Docker Volume 다루기 (0) | 2022.01.24 |
Docker Network 구조 (0) | 2022.01.18 |
Docker 기본 개념 part.2 (Entrypoint, 환경변수, 실행 명령어) (0) | 2022.01.17 |