docker 清理日志

日志文件过大暂时清理(治标)

命令会按照升序的方式对于容器文件夹进行排序,并列出容器文件夹的大小

  • du -d1 -h /var/lib/docker/containers | sort -h

    选择你要清理的容器进行清理

  • cat /dev/null > /var/lib/docker/containers/container_id/container_log_name

    批量清理(治标)

  1. 新建 clean_docker_log.hs
  2. chmod +x clean_docker_log.sh
  3. ./clean_docker_log.sh
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #!/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:"
    echo $log
    cat /dev/null>$log
    done

    echo "==================== end clean docker containers logs =========================="

    echo `date`

    启动时限制(治本)

    docker run

    daemon.json 设置(治本)

    1
    2
    3
    4
    5
    6
    # vim /etc/docker/daemon.json

    {
    "log-driver":"json-file",
    "log-opts": {"max-size":"500m", "max-file":"3"}
    }
  • max-size=500m,意味着一个容器日志大小上限是 500M,
    • max-file=3,意味着一个容器有三个日志,分别是 id+.json、id+1.json、id+2.json。

// 重启docker守护进程

1
2
systemctl daemon-reload
systemctl restart docker

注意:设置的日志大小,只对新建的容器有效。

作者

lizhongyuan3

发布于

2022-07-04

更新于

2022-09-05

许可协议

评论