sudo find /var/lib/docker/containers/ -type f -name "*.log" -exec du -h {} + | sort -hr | head -n 10

로그 용량이 너무 큼
주기적으로 비우려함.
sudo vi /etc/cron.daily/docker-log-compact
스크립트 작성
#!/usr/bin/env bash
set -euo pipefail
exec 9>/run/docker-log-compact.lock || exit 0
flock -n 9 || exit 0
THRESHOLD_MB=200
KEEP_MB=10
KEEP_BYTES=$((KEEP_MB*1024*1024))
find /var/lib/docker/containers -type f -name '*-json.log' -size +${THRESHOLD_MB}M -print0 |
while IFS= read -r -d '' f; do
sz=$(stat -c %s "$f" 2>/dev/null || echo 0)
(( sz > KEEP_BYTES )) || continue
tmp="${f}.tmp"
tail -c "$KEEP_BYTES" "$f" > "$tmp" || continue
: > "$f" || continue
cat "$tmp" >> "$f" && rm -f "$tmp"
done
실행권한
sudo chmod +x /etc/cron.daily/docker-log-compact
/etc/cron.daily에 실행권한(+x)으로 놓으면, 매일 한 번 자동 스케줄에 등록된 것과 같습니다
테스트
sudo /etc/cron.daily/docker-log-compact
결과

반응형
'DevOps > 🐳 Docker & Kubernetes' 카테고리의 다른 글
| Docker | prometheus 설치 및 사용법 (0) | 2025.05.14 |
|---|---|
| Docker | Nginx 설치 (0) | 2024.10.04 |
| Docker | Docker Compose 설치 (2) | 2024.10.04 |
| Docker | 자체 Docker Registry 생성하기 (3) | 2024.10.04 |
| Docker | GitLab Runner 등록하는법 (0) | 2024.10.03 |