docker容器日志处理
方案 A:全局配置(所有新建容器生效,/etc/docker/daemon.json)
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3",
"compress": "true"
}
}
含义:单个日志文件最大 20MB,最多保留 3 份,超过自动删除最旧日志,旧轮转文件自动压缩。
修改后:systemctl restart docker
方案 B:docker-compose.yml 服务内单独配置(推荐,只对当前服务生效,不影响别的容器)
services:
app:
image: xxx
logging:
driver: json-file
options:
max-size: "20m"
max-file: "3"
compress: "true"
执行 docker-compose up -d --force-recreate 重建容器生效。
应急清理(正在运行的容器,不重启服务清空日志)
⚠️ 不要直接 rm 删除 log 文件,docker 进程还持有句柄,空间不会释放!
# 清空指定容器日志
sudo truncate -s 0 /var/lib/docker/containers/<容器ID>/*.log
查看容器日志大小:
# 查看容器日志路径
docker inspect 容器ID | grep LogPath
# 看文件大小
ls -lh $(docker inspect --format='{{.LogPath}}' 容器ID)
查看实时日志
# 只实时跟踪,不输出任何历史旧日志
docker logs -f --tail=0 容器名
# 看最后300行,然后实时跟踪
docker logs -f --tail=300 容器名
浙公网安备 33010602011771号