🐋 목차
🩵 학습 목표
- Docker 컨테이너를 모니터링하고 로깅을 확인할 수 있습니다.
1. Docker 모니터링
Docker 모니터링
- 컨테이너가 현재 어떤 상태로 실행되고 있는지 확인하는 활동
- 확인 가능한 정보
- CPU 사용량
- 메모리 사용량
- 네트워크 트래픽
- 디스크 I/O
- 모니터링의 중요성
- 과도한 자원 사용 감지
- 병목 현상 파악
- 시스템 최적화 및 안정성 확보
2. Container 리소스 모니터링
docker stats: 컨테이너 실시간 모니터링
docker stats
- 실행 중인 모든 컨테이너의 자원 사용 현황을 실시간으로 표시
- 출력 정보:
- CPU %
- 메모리 사용량 / 제한
- 네트워크 I/O
- 디스크 I/O
* 특정 컨테이너만 보고 싶다면?
docker stats <컨테이너 이름 또는 ID>
htop: 시스템 리소스 모니터링
- 리눅스 시스템 전체의 자원 사용 상태를 직관적으로 보여주는 CLI 도구
docker run --name test-tools -ti -d ubuntu:22.04
docker exec -ti test-tools /bin/bash
apt update && apt install -y htop
htop
df와 du: 디스크 사용량 확인
- df: 시스템 전체 디스크 사용량
docker exec -ti test-tools /bin/bash
df -h
exit
- du: 디렉토리별 디스크 사용량
docker exec -ti test-tools /bin/bash
du -sh # 현재 디렉토리 총 사용량
du -h --max-depth=1 # 하위 디렉토리 1단계까지 사용량
exit
3. Container 로깅
기본 로깅 방식
- Docker는 모든 컨테이너의 stdout / stderr 출력을 캡처하여, 기본적으로 json-file 로깅 드라이버를 사용해 로그 파일에 기록한다.
/var/lib/docker/containers/<컨테이너ID>/<컨테이너ID>-json.log
로그 확인 예제
docker run --name logs-test --rm -d ubuntu:22.04 /bin/bash -c 'while true; do date; sleep 1; done'
docker logs logs-test # 전체 출력
docker logs -f logs-test # 실시간 로그 보기
docker logs -f --tail 10 logs-test # 마지막 10줄부터 보기
# 로그 파일 경로 확인:
docker inspect logs-test --format "{{.LogPath}}"
로그 파일 관리: 로테이션 설정
- 실제 운영 환경에서는 로그가 계속 쌓이기 때문에, 크기 제한 및 파일 개수 제한이 필요하다.
- max-size: 개별 로그 파일의 최대 크기
- max-file: 보관할 최대 파일 개수
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
'Backend > 강의' 카테고리의 다른 글
[🐋 Docker + CI/CD] 4. AWS 연동 (1) | 2025.07.03 |
---|---|
[🐋 Docker + CI/CD] 3-1. Dockerfile 과 Docker Compose (0) | 2025.07.02 |
[🐋 Docker + CI/CD] 2. Github actions를 활용한 CI/CD 파이프라인 (1) | 2025.07.01 |
[🐋 Docker + CI/CD] 1. CICD와 Docker 이해 (5) | 2025.07.01 |