docker容器日志問題
- 背景
- 如何處理日志問題
- 主要通過日志輪詢方式處理。
- 修改 Docker 配置
- 日志快速清理
背景
Docker 默認使用的是 json-file 日志驅動。日志會一直寫,一直寫,沒有限制、沒有輪轉、沒有清理!
日志默認位置:
/var/lib/docker/containers/<container-id>/<container-id>-json.log
當你發現它時,可能已經:
- 占了幾十個 G
- 吃滿了磁盤
- 服務都掛了!
如何處理日志問題
主要通過日志輪詢方式處理。
docker run -d \--name myapp \--log-driver json-file \--log-opt max-size=10m \--log-opt max-file=3 \myapp:latest
- max-size=10m:單個日志文件最大 10MB
- max-file=3:最多保留 3 個輪轉文件(最多 30MB)
容器總日志控制在 30MB 內
修改 Docker 配置
該配置適用于所有容器,只對操作之后創建的容器生效!
編輯配置文件 /etc/docker/daemon.json
{"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "5"}
}
重啟 Docker 服務:
systemctl restart docker
日志快速清理
僅推薦在磁盤告急時臨時使用!
find /var/lib/docker/containers -name *-json.log -exec truncate -s 0 {} \;