Docker 日志的批量清理思路

在做某些小项目的时候, 有时候会需要快速搭建服务, 并且依赖一些第三方服务或者以前写的其他服务. 这时候, 可能无法有效的定义日志级别, 修改第三方服务或以前写的其他服务的日志策略和内容. 而且小项目因为成本因素, 测试服务器磁盘空间一般较小, 那么就会造成磁盘因日志问题引发的不足问题.

这时可以在前期无脑的定义日志清理策略:

  1. 查看当前被 Docker 占用的磁盘空间大小

    list-docker-logs.sh

    1
    2
    3
    #!/bin/bash

    du -sh /var/lib/docker/containers/*

    chmod +x list-docker-logs.sh

  2. 无脑清理所有由 Docker 产生的日志

    clear-docker-logs.sh

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/bash

    for c in /var/lib/docker/containers/*
    do
    if [ -d "$c" ]; then
    log=`ls $c | grep 'json.log'`
    true > $c/$log
    echo clear $c/$log
    fi
    done

    chmod +x clear-docker-logs.sh

  3. 使用定时任务自动清除

使用 crontab -e 命令添加定时任务

首先在底部添加一行 0 5 * * * /path/to/clear-docker-logs.sh

Donate - Support to make this site better.
捐助 - 支持我让我做得更好.