专业的编程技术博客社区

网站首页 > 博客文章 正文

docker容器日志太大如何解决(id-json.log)

baijin 2025-04-27 12:20:47 博客文章 6 ℃ 0 评论

背景

最近在线上巡检多台服务器的时候,发现容器目录特别庞大。

由于线上环境服务较多,所以很谨慎的进行了排查。最终发现docker容器自身在运行时产生一个以容器id-json命名的log文件。对于部署高频服务的容器,时间长了占用磁盘空间会非常大。

查看docker容器日志路径

# docker inspect --format='{{.LogPath}}' e3b9d8ce0d63
/data/docker/containers/f825.....fad1f24372d-json.log

# 该日志可以直接访问
tail -f /data/docker/containers/f825.....fad1f24372d-json.log

解决方案

一、临时手动清空log日志

cat /dev/null > 容器id-json.log
echo '' > 容器id-json.log

可以查看所有容器日志路径:

find /data/docker/containers/ -name *-json.log

结果如图:

批量删除

#!/bin/sh 
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 ========"

二. 运行时指定参数

docker run -it --log-opt max-size=24m --log-opt max-file=2 alpine ash

max-size 日志最大限制
max-file 日志最数量

三、修改全局配置文件

创建或修改文件 /etc/docker/daemon.json,并增加以下配置

{
    "log-driver":"json-file",
    "log-opts":{
        "max-size" :"50m","max-file":"1"
    }
}

然后记得重启dokcer。


需要注意的是:已存在的容器不会生效,需重建容器。


文章参考 解决docker运行日志太大问题_docker日志文件过大-CSDN博客

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表