zoukankan      html  css  js  c++  java
  • 解决docker容器日志导致主机磁盘空间满了的情况

    日志文件在   /var/lib/docker/containers/<docker_container_id>/   目录下


    查看日志大小

    vim /opt/docker_log_size.sh

    #!/bin/sh
    
    echo "======== docker containers logs file size ========"  
    
    logs=$(find /var/lib/docker/containers/ -name *-json.log)  
    
    for log in $logs  
            do  
                 ls -lh $log   
            done  

    chmod +x /opt/docker_log_size.sh

    /opt/docker_log_size.sh


    删除日志

    通过上面的脚本找到占用空间大的日志,复制出日志路径
    清空日志
    cat /dev/null > <docker_container_id>-json.log


    清空所有日志的脚本

    vim /opt/clean_docker_log.sh

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

    chmod +x /opt/clean_docker_log.sh

    /opt/clean_docker_log.sh


    上述方法,日志文件迟早又会涨回来。
    下面从根本上解决问题。


    设置Docker容器日志大小

    设置一个容器服务的日志大小上限

    以nginx为例

    nginx: 
      image: nginx:latest
      restart: always 
      logging: 
        driver: "json-file" 
        options: 
          max-size: "5g"

    重启nginx容器之后,其日志文件的大小就被限制在5GB


    全局设置

    新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:
    vim /etc/docker/daemon.json

    {
            "registry-mirrors": ["https://registry.docker-cn.com"],
            "live-restore": true,
            "log-driver":"json-file",
            "log-opts": {"max-size":"500m", "max-file":"1"}
    }

    max-size=500m,意味着一个容器日志大小上限是500M, 

    max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

    // 重启docker守护进程
    systemctl daemon-reload
    systemctl restart docker

    参考:https://my.oschina.net/u/2289161/blog/1931390

  • 相关阅读:
    slf4j中的MDC
    redis incr incrby decr decrby命令
    Java接口响应超时监控
    JDK1.7.0_45源码阅读<java.lang.Boolean>
    Debug JDK变量显形
    Java全角、半角字符的关系以及转换
    模型选择
    经验风险最小化
    支持向量机(下)
    支持向量机(上)
  • 原文地址:https://www.cnblogs.com/wintersoft/p/11941213.html
Copyright © 2011-2022 走看看