手动清理Docker容器产生的日志

实际工作中,发现有些同事会有裸跑Docker容器的用法,最主要的是用json-file的日志驱动,还不配置日志轮转清理,具体原因不详。应用产生的日志量也不小,一段时间后,有趣的事情发生了:Docker莫名其妙不好使了,一查原因日志报盘了。上网找了一下资料,找到了比较好用的手动快速清理日志的方法,这里记录一下,供日后查阅使用。原创地址详见“参考资料”。

1. 在Docker默认配置下,利用下面的命令查看各个容器的日志文件大小;

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

2. 利用下面的脚本,可以手动清理宿主机上Docker容器产生的日志。

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/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 =========================="

参考资料:
https://blog.csdn.net/xunzhaoyao/article/details/72959917