1. Container 로깅
- Docker는 모든 컨테이너 로그의 표준출력(stdout) 또는 표준에러(stderr)를 캡처하여
json-file 로깅 드라이버를 사용하여 json 형식으로 파일을 기록
- 로그 파일 위치
/var/lib/docker/containers/[컨테이너ID]/[컨테이너ID]-json.log 에 기록(ubuntu에서)
- 예
docker run -d \
--log-driver json-file \
--log-opt max-size=10m \
--log-opt max-file=10 \
--name nginxtest \
--restart always \
-p 80:80 \
-p 443:443 \
nginx:latest
# 로그 파일의 크기가 계속 커질 수 있기 때문에 로그 파일의 최대 크기와 최대 파일 개수를 지정
docker run --name logs-test --rm -d ubuntu:22.04 /bin/bash -c 'while true; do date; sleep 1; done'
# logs-test 컨테이너의 로그를 전체 출력하기
docker logs logs-test
# logs-test 컨테이너의 로그를 tailing하기
docker logs -f logs-test
# 마지막 10줄부터 로그를 계속 보기
docker logs -f --tail 10 logs-test
services:
app:
logging:
driver: 'json-file'
options:
max-size: '10m'
max-file: '10'