Docker容器日志定时清理

1.编辑脚本,查看日志大小

新建脚本在/root目录下

cd /root/
vim 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  

2.删除日志脚本

vim 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 docker_log_size.sh
chmod +x clean_docker_log.sh
# 执行脚本
./docker_log_size.sh
./clean_docker_log.sh

3.定时执行

crontab配置
如系统没有安装crontab请执行如下命令

yum install crontabs
编辑定时任务脚本

执行:

crontab -e
0 2 */1 * * sh /root/clean_docker_log.sh

将执行结果写入到日志

0 2 */1 * * sh /root/clean_docker_log.sh >> /root/mylog.log 2>&1

:wq保存

每分钟运行一次
每2天运行一次 在12点0分开始运行
0 12 */2 * *


# 重启docker守护进程
systemctl daemon-reload

systemctl restart docker
查看定时任务是否生效:crontab -l

在这里插入图片描述

4.设定docker容器日志大小

使用docker全局配置:一个容器最多3个日志,大小50M

# vim /etc/docker/daemon.json
{
  "log-driver":"json-file",
  "log-opts": {"max-size":"50m", "max-file":"3"}
}

如下:
在这里插入图片描述

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

重启docker守护进程

systemctl daemon-reload

systemctl restart docker

参考:
https://www.cnblogs.com/qq874455953/p/9589207.html
https://blog.csdn.net/yjk13703623757/article/details/80283729

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值