全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 1513|回复: 12
打印 上一主题 下一主题

技术贴:DOCKER自动清理日志

[复制链接]
跳转到指定楼层
1#
发表于 2022-10-31 23:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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   =========================="
推荐
发表于 2022-10-31 23:12:49 | 只看该作者
脱开裤子放屁,有更好的方式

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
推荐
发表于 2022-11-1 09:29:38 | 只看该作者
新建或修改/etc/docker/daemon.json

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


这个不行吗
推荐
发表于 2022-11-23 10:23:04 | 只看该作者
最好启动时限制,这个属于补救措施
推荐
发表于 2022-10-31 23:23:39 来自手机 | 只看该作者
我记得在daemon.json定义大小就可以了。
4#
发表于 2022-10-31 23:19:31 | 只看该作者
好文,帮顶。



/**
* 即使如此,我也有我想保护的世界!——《高达seed》
*
* Link https://greasyfork.org/zh-CN/scripts/396933-hostloc-zsbd
*/
6#
发表于 2022-10-31 23:28:22 | 只看该作者
挺好哈 感谢楼主
7#
发表于 2022-10-31 23:50:14 | 只看该作者
好的,学习到了,mac的docker占了好多,我以为自己的文件呢
9#
发表于 2022-11-23 08:50:44 | 只看该作者
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}
复制代码



这样写吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-1-14 10:51 , Processed in 0.071277 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表