zoukankan      html  css  js  c++  java
  • docker日志输出文件大小设置以及文件个数限制

    问题描述

      今天有同事运行了一个docker容器,不多时就导致宿主机硬盘直接撑爆,消耗了120G,发生的很是突然。

    问题排查

      后续查阅资料,发现是因为docker中的某个进程一直在持续输出,而这些输出会记录到docker日志中,日志默认位置在 /var/lib/docker/containers/containeid 目录下面的 containeid-json.log 文件中。执行命令 du -sh *,可以看大 log 文件非常大。

    问题避免

      问题源头已经知道了,那么我们如何避免这种情况再发生了,首先我们不能禁止日志输出,那么我们是否可以限制文件的大小呢?

    具体操作

      重启容器:

        docker run增加如下参数,限制生成的json.log单个文件大小和保留文件个数:--log-opt max-size=100m --log-opt max-file=3

      词语解释:

        max-size 指定日志文件大小上限

        max-file   指定日志文件个数

    最终的效果就是,日志会持续生成 3 文件,并一直保留最新的 3 个日志文件。

    如下所示:

    [root@etcd1 27cccf6078bc114e0af28b8b89927c5768656ffd8764755ec79f9bb322d5ae74]# ll
    total 38272
    -r--------. 1 root root  8916074 Mar 30 18:17 27cccf6078bc114e0af28b8b89927c5768656ffd8764755ec79f9bb322d5ae74-json.log
    -r--------. 1 root root 10000056 Mar 30 18:17 27cccf6078bc114e0af28b8b89927c5768656ffd8764755ec79f9bb322d5ae74-json.log.1
    -r--------. 1 root root 10000001 Mar 30 18:17 27cccf6078bc114e0af28b8b89927c5768656ffd8764755ec79f9bb322d5ae74-json.log.2
    

    注意点:  --log-opt max-size=1m --log-opt max-file=3 应该放在 docker run  后面,不可以放在镜像后面执行,这样子会不生效。

    PS.内容永远保持 max-file 的最新数据

  • 相关阅读:
    LeetCode 476 数字的补数
    MySQL与Java 整型数据映射
    TINYINT[M]、INT[M]和BIGINT[M]中M值的意义
    git删除本地分支
    git 初始化项目、创建本地分支、本地分支与远程分支关联
    Java 当文件不存在时自动创建文件目录和文件
    Java 在文件末尾追加内容
    免密自动登陆SAPGui
    SAP GUI770下载及安装
    notepad++格式化json,无法安装json插件
  • 原文地址:https://www.cnblogs.com/cxbhakim/p/8677928.html
Copyright © 2011-2022 走看看