全球主机交流论坛

标题: 技术贴:DOCKER自动清理日志 [打印本页]

作者: lzlancom    时间: 2022-10-31 23:09
标题: 技术贴:DOCKER自动清理日志
DOCKER运行时间长了,小鸡的硬盘容量老是会爆,这里搬运了一个亲测有效简单的脚本,可以保存为SH后再BASH,也可以放宝塔计划任务。
#!/bin/sh
# 此脚本为日常清理docker日志
# docker 容器的路劲日志为 /var/lib/docker/containers/  下-json.log
# 清理的方式有两种
# 1、直接RM -f /var/lib/docker/containers/ *-json.log
# 这种方式必须停止docker才能释放空间,否则日志文件一直处于写入(占用)状态,无法清理
# 2、使用cat /dev/null > $log 方式,这样可以直接替换日志文件里面的内容,将日志直接清空
# 本脚本使用的是第二种方法

# 开始清理日志提示
echo  "====================$(date "+%Y-%m-%d %H:%M:%S") Start clean docker containers logs >= 1G =========================="

#定义日志路径
logs=$(find /var/lib/docker/containers/ -name *-json.log -type f)


for log in $logs
        do

                echo "clean logs : $log"
                cat /dev/null > $log
        done

# 清理完成
echo "==================== $(date "+%Y-%m-%d %H:%M:%S") end clean docker containers logs   =========================="

作者: host0108    时间: 2022-10-31 23:12
脱开裤子放屁,有更好的方式

Linux基本上都自带了一个组件logrotate,几行配置的事情
https://sandro-keil.de/blog/logrotate-for-docker-container/

logdriver也自带了rotate
$ docker run \
    --log-driver json-file \
    --log-opt max-size=15m \
    --log-opt max-file=5 \
    nginx echo hello world
作者: Mintian    时间: 2022-10-31 23:16
mk
作者: 沙龙    时间: 2022-10-31 23:19
好文,帮顶。



/**
* 即使如此,我也有我想保护的世界!——《高达seed》
*
* Link https://greasyfork.org/zh-CN/scripts/396933-hostloc-zsbd
*/
作者: 刹那    时间: 2022-10-31 23:23
我记得在daemon.json定义大小就可以了。
作者: lucienfc    时间: 2022-10-31 23:28
挺好哈 感谢楼主
作者: 昔洛z    时间: 2022-10-31 23:50
好的,学习到了,mac的docker占了好多,我以为自己的文件呢
作者: XSProMax    时间: 2022-11-1 09:29
新建或修改/etc/docker/daemon.json

{
  "log-driver":"json-file",
  "log-opts": {"max-size":"10m", "max-file":"1"}
}


这个不行吗
作者: XSProMax    时间: 2022-11-23 08:50
host0108 发表于 2022-10-31 23:12
脱开裤子放屁,有更好的方式

Linux基本上都自带了一个组件logrotate,几行配置的事情

这个要如何写
base_dir="/home/news"
  1.                 docker run -v ${base_dir}/:${base_dir}/ \
  2.                                 -v ${base_dir}/news_downloader/config/:/opt/news_downloader/config/ \
  3.                                 -v ${base_dir}/news_downloader/record/:/opt/news_downloader/record/ \
  4.                                 -v ${base_dir}/news_downloader/log:/opt/news_downloader/log \
  5.                                 --log-driver json-file \
  6.                                 --log-opt max-size=15m \
  7.                                 --log-opt max-file=5 \
  8.                                 --restart always -d -m 512M --cpuset-cpus="2" --name news_downloader news_downloader:${version}
复制代码



这样写吗
作者: telnetpig    时间: 2022-11-23 10:07
学习了
作者: gaoji.me    时间: 2022-11-23 10:23
最好启动时限制,这个属于补救措施
作者: shuang76    时间: 2022-11-23 10:28
马克 可能容器很少 所以暂时没遇到caches很多的情况
作者: ygongt74    时间: 2022-11-23 12:16
刹那 发表于 2022-10-31 23:23
我记得在daemon.json定义大小就可以了。

    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    }




欢迎光临 全球主机交流论坛 (https://hostloc.9hanju.com/) Powered by Discuz! X3.4