docker日志大小限制,清除方法,脚本

设置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

【需要注意的是:设置的日志大小规则,只对新建的容器有效】

查看宿主机docker所有容器日志文件大小:

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

删除所有容器的日志:

vim docker_log_clean.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 ========"

删除单个容器的日志:

vim docker_log_single_clean.sh
#!/bin/bash
read -p "输入要清除日志的容器名:" name
echo "cleaning logs:$name"

id=$(docker inspect $name |grep Id |cut -d'"' -f4)

cat /dev/null > /var/lib/docker/containers/$id/$id-json.log
docker容器日志存在于/var/lib/docker/containers/下以json.log结尾的文件

推荐阅读更多精彩内容