Docker日志
一、概述
Docker 容器的数据保存在 /var/lib/docker/containers 目录下,主要是是一些不断追加的日志文件,文件名默认为 {container_id}-json.log
查出大文件
du -d1 -h /var/lib/docker/containers | sort -h
输出:
36K /var/lib/docker/containers/3535676acd77d83d25c2ea5fa5ced46bd12cf61fe355bbbaceb5dfd5826fbb27
40K /var/lib/docker/containers/1d65bcf316af93861e9f9d22713703687f1a80edc35feadd40b2b25a3ae73801
40K /var/lib/docker/containers/37e93b7da7d8828309c3ca30c09b413283ce9b51273b1e0294d79f1d1c824267
40K /var/lib/docker/containers/91f20978e0535b117a32f6af04b8158b357fe6a58b29b3121bdd16ab84771526
40K /var/lib/docker/containers/ed48eee74e859785a6a21a3c95c209481136238d83965c86b52cb676bb682eaa
200K /var/lib/docker/containers
二、清理日志
清理脚本
#!/bin/bash
echo "==================== start clean docker containers logs =========================="
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "==================== end clean docker containers logs =========================="
可编写定时任务
crontab -l
\* * 2 * * /bin/sh /server/scripts/clean_logs.sh &>/dev/null
容器配置
通过docker run 参数
docker run -it --log-opt max-size=10m --log-opt max-file=3 redis
或者 docker compose 配置
logging:
driver: "json-file"
options:
max-size: "2g" # 日志文件大小
max-file: "10" # 日志的数量
全局配置
配置文件 /etc/docker/daemon.json 添加log-dirver和log-opts参数:
{
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}
重启生效
systemctl daemon-reload
systemctl restart docker
注意:设置的日志大小,只对新建的容器有效。已存在的容器不会生效,需要重建才可以