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