Linux磁盘爆满清理docker容器log

文章讲述了在服务器上使用ES时遇到磁盘使用率过高错误,经排查发现是由于docker容器的日志文件过大。作者提供了清理日志、设置日志最大大小和数量的方法,并推荐在启动时或docker配置文件中限制日志存储。
摘要由CSDN通过智能技术生成

1.问题引出

        使用服务器中es的时候,es报错 TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark 查阅资料后发现是Linux 服务器磁盘使用率已经高达 96% 了,ES 磁盘使用率配置默认上限为 95%,所以es在报错。

2.查找问题

        首先来到docker目录

cd /var/lib/docker/

         在docker路径下使用命令

        ps:--max-depth=1意思为检索文件的最大深度1,即只检索汇总计算当前目录下的文件

du -h --max-depth=1

        确定是容器内的日志占用文件过大

3.解决问题

        确定是容器内log问题后进入容器

cd /var/lib/docker/containers/
du -h --max-depth=1

         这里也是清理之后了,清理之前seata日志高达30多个G,这里清理别的容器作为演示

 我们进入容器文件夹(注意不是进入容器)

cd /var/lib/docker/containers/你的容器id/

 进入文件夹之后使用“du -ah”命令查看当前文件夹中的文件磁盘占用大小

du -ah

         可以看出log文件占用最多磁盘。使用“cat /dev/null > *-json.log”命令将json文件给清理掉

        如图,清理后json文件大小为0

        清理后需要重启容器,实际上容器已经down了

 4.总结

        推荐在docker容器启动时指定日志的最大磁盘容量

docker run ...... --log-opt max-size=10m --log-opt max-file=1

        或者修改docker全局配置

        新建或修改/etc/docker/daemon.json,添加log-dirver和log-opts参数(daemon.json)

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3",
    "labels": "production_status",
    "env": "os,customer"
  }
}

        或者在docker-compose文件中配置日志

logging:
  options:
    max-size: '12m'
    max-file: '5'
  driver: json-file

参考资料:

Linux Docker容器磁盘出现日志/var/lib/docker/overlay2占用100%_彭于晏之武冈分晏的博客-CSDN博客

  • 24
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值