一、通过配置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
|