6.1 docker logs 명령어의 주요 기능
컨테이너 로깅은 Docker 애플리케이션의 관리 및 모니터링에서 중요한 부분이야. 로그는 컨테이너의 동작을 추적하고, 문제를 진단하며 컨테이너 내부에서 애플리케이션이 어떻게 작동하는지 이해하는 데 도움을 줘. 이번 강의에서는 docker logs 명령어를 사용해 컨테이너 로그를 관리하는 방법을 자세히 살펴볼 거야.
docker logs 명령어의 주요 기능
docker logs 명령어는 컨테이너의 로그를 가져오고 보는 데 사용돼. 이 명령어는 다음을 할 수 있어:
- 컨테이너의 표준 출력(stdout)과 표준 에러 출력(stderr)을 볼 수 있어.
- 실시간으로 로그를 필터링하고 추적할 수 있어.
- 로그를 검색하고 분석해서 문제를 진단할 수 있어.
6.2 docker logs 명령어 사용하기
1. 컨테이너 로그 보기
컨테이너의 로그를 보려면 다음 명령어를 사용해:
docker logs <container_id_or_name>
예시:
docker logs my_container
이 명령어는 my_container의 모든 로그를 출력해.
2. 실시간으로 로그 추적
실시간으로 로그를 추적하려면 -f (또는 --follow) 플래그를 사용해:
docker logs -f <container_id_or_name>
예시:
docker logs -f my_container
이 명령어는 새 로그가 나타날 때마다 표시될 거야.
3. 출력되는 줄 수 제한
docker logs 명령어로 출력되는 줄 수를 제한하려면 --tail 플래그를 사용해:
docker logs --tail <number_of_lines> <container_id_or_name>
예시:
docker logs --tail 10 my_container
이 명령어는 my_container의 마지막 10줄 로그만 출력될 거야.
4. 특정 시간부터 로그 출력
특정 시간부터 로그를 출력하려면 --since 플래그를 사용해:
docker logs --since <timestamp> <container_id_or_name>
예시:
docker logs --since 2022-01-01T00:00:00 my_container
이 명령어는 my_container의 2022년 1월 1일부터의 로그를 출력해.
5. 특정 시간까지의 로그 출력
특정 시간까지의 로그를 출력하려면 --until 플래그를 사용해:
docker logs --until <timestamp> <container_id_or_name>
예시:
docker logs --until 2022-01-02T00:00:00 my_container
이 명령어는 my_container의 2022년 1월 2일까지의 로그를 출력해.
6.3 docker logs 사용 예시
예시 1: 애플리케이션 오류 진단
만약 컨테이너 안에서 애플리케이션이 예기치 않게 오류로 종료되었다면, docker logs 명령어를 사용해서 원인을 진단할 수 있어:
docker logs my_app_container
로그를 확인하면 무엇이 잘못됐고, 왜 애플리케이션이 오류로 종료되었는지 이해하는 데 도움을 줄 수 있어.
예시 2: 서비스 작업 추적
실시간으로 웹 서비스 작업을 추적하려면 -f 플래그를 사용해:
docker logs -f web_service_container
이 명령어를 통해 웹 서비스로 들어오는 새로운 로그를 실시간으로 볼 수 있어.
예시 3: 특정 기간의 로그 분석
특정 기간 동안의 로그를 분석하려면 --since와 --until 플래그를 사용해:
docker logs --since "2023-07-01" --until "2023-07-02" my_app_container
이 명령어는 my_app_container 컨테이너의 2023년 7월 1일 로그를 출력할 거야.
6.4 Docker 로깅 드라이버 설정
Docker는 컨테이너에 대해 다양한 로깅 드라이버를 지원하고 설정할 수 있어. 주요 로깅 드라이버는 다음을 포함해:
-
json-file: 기본값. 로그가 JSON 형식의 파일로 저장돼. syslog: 로그가 시스템 로그(syslog)로 전송돼.journald: 로그가 journald 시스템으로 전송돼.-
gelf: 로그가 GELF(Graylog Extended Log Format)를 지원하는 서버로 전송돼. fluentd: 로그가 Fluentd 서버로 전송돼.
로깅 드라이버 설치
컨테이너 실행 시 --log-driver 플래그를 사용해서 로깅 드라이버를 설정해봐:
docker run --log-driver <driver_name> <container_image>
예제:
docker run --log-driver syslog my_app_image
이 예는 syslog 로깅 드라이버를 사용하는 컨테이너를 실행해.
로깅 옵션 설정
--log-opt 플래그를 사용해서 로깅 옵션을 지정할 수 있어:
docker run --log-driver syslog --log-opt syslog-address=udp://localhost:514 my_app_image
GO TO FULL VERSION