分享

两种方式自动处理docker日志文件

 zkl_jk 2020-07-02

一、通过配置daemon.json设置日志文件大小,针对新产生的容器文件

docker限制容器日志大小
1.新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:

# 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。

2.然后重启docker的守护线程

命令如下:

systemctl daemon-reload
systemctl restart docker

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

二、建立定时任务清理日志脚本, 针对已经产生的容器文件

vi clearDockerlog.sh
------------------------------------------------------
#!/bin/sh
echo "======== 清理容器日志文件超过1G的文件 ========"

#需要设置好docker的路径 【/home/docker/docker/containers/】
logs=$(find /home/docker/docker/containers/ -name *-json.log)

for log in $logs
do
#ls -lh $log

FILE_SIZE=`ls -l $log | awk '{print $5}'`
#echo $FILE_SIZE

#1G = 1073741824 字节
#2G=2×1024×1024×1024=2147483648B(字节)

if [ $FILE_SIZE -ge 1073741824 ]
then
echo "清理超过1G文件 $log"
cat /dev/null > $log
fi
done
------------------------------------------------------
:wq

编辑好这个文件clearDockerlog.sh
再设置好crontabs定时任务(注1)去调用,就可以定时清理了。

注1:
linux配置定时任务crontabs
http://101.39.231.108:9966/?p=74

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多