← 전체 글로 돌아가기

Docker

Docker Compose 컨테이너 로그가 디스크를 채운 뒤 적용한 회전 설정

컨테이너의 json 로그가 디스크를 가득 채운 장애를 확인하고 로그 회전을 설정한 운영 노트

배포 실패보다 디스크를 먼저 봤다

SSH가 느려지고 새 이미지 풀도 실패했다. 애플리케이션 로그를 찾기 전에 df -h를 실행했고, /var/lib/docker/containers 아래 한 *-json.log가 비정상적으로 커져 있었다.

df -h
sudo du -xh /var/lib/docker/containers | sort -h | tail -n 10

Compose 설정을 바꿨다

services:
  web:
    image: example/web:latest
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "5"

이미 실행 중인 컨테이너에는 새 옵션이 자동 적용되지 않아 설정을 검증한 뒤 재생성했다.

docker compose config
docker compose up -d --force-recreate web
docker inspect web --format '{{json .HostConfig.LogConfig}}'

운영 기준

로그 회전은 저장 공간을 제한할 뿐 반복 경고의 원인을 해결하지 않는다. docker system prune을 습관처럼 실행하지 않고, 디스크 임계치 알림도 추가했다.

  • 실제 컨테이너의 LogConfig 확인
  • 재생성 이후 로그 파일 크기 관찰
  • 반복 에러의 원인 별도 수정
  • 보존해야 할 로그는 외부 수집

장애 때 지울 명령 하나를 찾기보다 평소에 커지지 않게 만드는 설정이 먼저였다.