51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

派 · 折腾笔记 - 一键清除docker日志

能看到这里说明可能遇到了和我一样的问题,对,服务器存储不够用了。

通过上一篇 查看docker的日志大小 里面可以看到容器的日志竟然达到G级别,而这只是我测试用的虚拟机里面,还不是服务器,真正的服务器里的docker日志最高的到了27G!df -h查看只剩下8G存储空间可用,所以必须尽快删除日志了。

困惑 {#困惑}

说到删除,喀喀喀,不多说,直接rm了,结果df发现存储空间并没有空闲出来啊。原因是在Linux或者Unix系统中,通过rm -rf或者文件管理器删除文件,将会从文件系统的目录结构上解除链接(unlink)。如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

解决 {#解决}

正确的删除方法:cat /dev/null > *-json.log。

结合查看日志的大小的方式,日志清理的脚本奉上:

                    
                      #!/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 ========"
# chmod +x clean_docker_log.sh
# ./clean_docker_log.sh

                    </code>
                  </pre>



 
当然这种方式清理过后还是会再次慢慢增加起来,你想到什么了?没错,大不了价格周期任务就是了 cron!

 
>   这里仅提供一个思路,当然网上还有很多其他方式,比如修改docker配置、配置容器docker-compose等,对于我来说一个是不实用(只针对新容器)、一个是难度大(没安装compose),所以直接简单粗暴的解决掉再说吧。
>
>  

赞(0)
未经允许不得转载:工具盒子 » 派 · 折腾笔记 - 一键清除docker日志