Title

/var/lib/docker/containers里容器目录过大处理

docker的日志文件存在 /var/lib/docker/containers目录中,一般过大的文件都是.log的文件,清空.log文件即可

以下命令可以查看这个目录下的所有日志文件

find /var/lib/docker/containers -name *.log
 
过滤一下过大的目录
du -sh * |grep G
可以看出我的这个目录大小是86G
 
使用以下命令进行日志的清空
sh -c "cat /dev/null > ${log_file}"
清空后查看了以下,那个文件的容量已经被缩小了

 
以上只是临时解决的方式,最好是创建容器时就控制日志的大小

运行时控制

启动容器时,我们可以通过参数来控制日志的文件个数和单个文件的大小

max-size 最大数值

max-file 最大日志数

docker run -it --log-opt max-size=10m --log-opt max-file=3 redis

全局配置

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

{

    "log-driver":"json-file",

    "log-opts":{

        "max-size" :"50m","max-file":"3"

    }

}

max-size=50m,意味着一个容器日志大小上限是50M, 
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。可以存在的最大日志文件数。如果超过最大值,则会删除最旧的文件。**仅在max-size设置时有效。默认为5

随后重启 Docker 服务

sudo systemctl daemon-reload

sudo systemctl restart docker

!!!不过已存在的容器不会生效,需要重建才可以

 

posted @ 2024-09-09 16:23  Esurts~  阅读(64)  评论(0)    收藏  举报