본문 바로가기
[스파르타코딩클럽]/Docker & CICD

Docker 모니터링&로깅

by 진진리 2024. 3. 19.
728x90

도커 모니터링

컨테이너의 성능, 사용중인 자원(CPU, 메모리), 네트워크 사용량 같은 것들을 확인

모니터링 정보를 통해 문제를 빨리 발견하고 해결할 수 있음

컨테이너를 효율적으로 관리하고 최적화할 수 있음

 

  • docker stats : Docker에서 제공하는 간단하고 실용적인 모니터링 도구
    • CPU 사용률, 메모리 사용량, 네트워크 I/O, 디스크 I/O 등 여러 중요한 정보를 보여줌
    • 특정 컨테이너의 상태만 보고 싶다면 docker stats [컨테이너 이름 또는 ID]
  • htop : 시스템 모니터링의 필수 도구
    • 리눅스 시스템을 모니터링하는데 사용되는 도구
    • 주요 기능
      • 실시간 모니터링: CPU, 메모리, 스왑 사용량을 실시간으로 볼 수 있음
      • 프로세스 관리: 실행 중인 프로세스를 쉽게 확인하고 필요하면 종료시킬 수도 있음
      • 사용자 친화적 인터페이스: 색상이 있는 그래픽과 간단한 조작으로 정보를 쉽게 읽을 수 있음
    • 사용 방법
docker run --name test-tools -ti -d ubuntu:22.04

docker exec -ti test-tools /bin/bash
apt update; apt upgrade -y; apt install htop -y;
htop
exit

 

  • df (disk free)
    • 리눅스 시스템 전체의 디스크 사용량 확인 가능
docker exec -ti test-tools /bin/bash
df -h
exit

 

  • du
    • 디렉토리 별로 사용 공간을 나타내줌
docker exec -ti test-tools /bin/bash
du -sh # 현재 디렉토리의 총 디스크 사용량을 GB 단위로 보여줌
du -h --max-depth=1 # 현재 디렉토리 한 단계 아래 디렉토리 까지만 사용량을 보여줌
exit

 

 

Container 로깅

  • Docker는 모든 컨테이너 로그의 표준 출력(stdout) 또는 표준 에러(stderr)를 캡처하여 json-file 로깅 드라이버를 사용하여 json 형식으로 파일에 기록
  • 로그 파일의 위치(Ubuntu): /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'

# logs-test 컨테이너의 로그를 전체 출력하기
docker logs logs-test

# logs-test 컨테이너의 로그를 tailing하기
docker logs -f logs-test

# 마지막 10줄부터 로그를 계속 보기
docker logs -f --tail 10 logs-test

 

  • 로그 로테이션 설정: 로그 파일의 최대 크기와 최대 파일 개수를 지정함
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 & CICD' 카테고리의 다른 글

Docker Network  (2) 2024.03.19
Docker volume  (0) 2024.03.19
Docker Compose  (1) 2024.03.19
Dockerfile  (0) 2024.03.18
Github Actions와 CI/CD  (0) 2024.03.18