docker日志清理

我们的docker工程在运行一段时间后,要定期的清理一下docker logs 不然系统磁盘空间会被日志占满。这里写下清理步骤:

1:docker容器的日志一般都保存在系统的var/lib/docker/containers路径下。

2:查询日志文件大小的命令:

ls -lh $(find /var/lib/docker/containers/ -name *-json.log)

3:清理文件有两种办法,方法1是直接删除文件:

rm -rf 文件名

这样方式需要重启docker容器,不重启容器的话,磁盘空间没有释放。原因是文件在删除的时候正在被容器使用,即使删除了,进程将仍然可以读取该文件,磁盘空间也一直被占用。

方法2:把日志文件中的内容清空。使用命令:

truncate -s 0 /var/lib/docker/containers/3ee1a49546e369049836c07f6c92b9e4af4b6ef8ff13393ed5a2b5c2bf528372/3ee1a49546e369049836c07f6c92b9e4af4b6ef8ff13393ed5a2b5c2bf528372-json.log

其中3ee1a49546e3是容器ID

写成shell脚本定期清理:

#!/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"

                truncate -s 0 $log

        done

echo "==================== end clean docker containers logs  =========================="


我们还可以限制生成日志的大小在/etc/docker/daemon.json文件夹中添加:

"log-driver":"json-file",

 "log-opts":{ "max-size" :"50m","max-file":"1"}

然后重启:

systemctl daemon-reload

systemctl restart docker

这样所有容器的日志大小就被限制到50M了。

你可能感兴趣的:(docker日志清理)