Docker

Docker 에서 로그 삭제 방법

스카이데이즈 2025. 5. 9. 17:28
728x90

📂 1. 기본 로그 경로 확인

기본적으로 Docker는 로그를 /var/lib/docker/containers/<container_id>/<container_id>-json.log 경로에 저장합니다.


🧹 2. 개별 컨테이너 로그 삭제

방법 1: 로그 파일 수동 삭제

# 로그 파일을 비움 (권장)
truncate -s 0 /var/lib/docker/containers/<container_id>/<container_id>-json.log
  • truncate는 파일을 제거하지 않고 내용을 0바이트로 만듭니다.
  • <container_id>는 docker ps -a로 확인 가능

방법 2: 컨테이너 재시작 없이 강제로 파일 삭제

rm /var/lib/docker/containers/<container_id>/*.log

주의: 이 방법은 컨테이너가 실행 중인 경우 위험할 수 있으며, 로그 파일이 계속 생성될 수 있습니다.


⚙️ 3. 로그 롤링 및 제한 설정

/etc/docker/daemon.json 파일을 수정하여 로그 파일 크기 및 개수 제한 가능:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
  • max-size: 각 로그 파일의 최대 크기
  • max-file: 보존할 로그 파일의 개수

변경 후 sudo systemctl restart docker 명령으로 Docker 데몬 재시작 필요


🔁 4. 로그 삭제 후 컨테이너 재시작

경우에 따라 컨테이너를 재시작하면 로그가 초기화될 수 있습니다:

docker restart <container_id>

🧰 5. 전체 Docker 로그 정리 스크립트 예시

#!/bin/bash
for container in $(docker ps -q); do
  log_path=$(docker inspect --format='{{.LogPath}}' $container)
  echo "Clearing log: $log_path"
  truncate -s 0 "$log_path"
done

❗ 주의사항

  • 로그를 완전히 삭제하기 전에는 백업을 고려하세요.
  • 로그 제한 설정을 하지 않으면 삭제 후에도 계속 커질 수 있습니다.
  • Docker 외의 로그 시스템 (예: journald)을 사용하는 경우 별도 설정이 필요합니다 (log-driver 확인 필요).

 

728x90