docker 日志过大,overlay占用磁盘空间过大问题

2022-10-11  本文已影响0人  催化剂

clean.sh (参考链接:https://www.cnblogs.com/98record/p/docker-qing-li-ri-zhi-jiao-ben.html

#!/bin/sh

# 此脚本为日常清理docker日志

# docker 容器的路劲日志为 /var/lib/docker/containers/  下-json.log

# 清理的方式有两种

# 1、直接RM -f /var/lib/docker/containers/ *-json.log

# 这种方式必须停止docker才能释放空间,否则日志文件一直处于写入(占用)状态,无法清理

# 2、使用cat /dev/null > $log 方式,这样可以直接替换日志文件里面的内容,将日志直接清空

# 本脚本使用的是第二种方法

# 开始清理日志提示

echo  "====================$(date "+%Y-%m-%d %H:%M:%S") Start clean docker containers logs >= 1G =========================="

#定义日志路径

logs=$(find /var/lib/docker/containers/ -name *-json.log -type f -size +1G)

for log in $logs

        do

                echo "clean logs : $log"

                cat /dev/null > $log

        done

# 清理完成

echo "==================== $(date "+%Y-%m-%d %H:%M:%S") end clean docker containers logs  =========================="

docker system prune 命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)

docker system prune -a 命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉

Docker存储驱动overlay和overlay2

https://www.cnblogs.com/zlw-xyz/p/15490342.html

root@master:/var/lib/docker/overlay2# find . / -name *json.log

搜索所有的日志文件

在目录中会存在以目录名为前缀,以“-json.log”为后缀的目录文件。使用如下命令会看到该文件的大小:

ll -h

然后可使用如下命令对该文件的内容进行清理:

cat /dev/null > *-json.log

清理完成可不重启服务,但如果允许建议重启一下docker服务。

在此执行df -h命令之后,你会发现overlay2所占的磁盘空间已经减小。

使用Docker过程中,长时间运行服务容器,导致不能进行上传文件等操作,通过命令df -h 发现overlay占用较高。通过命令

docker system prune -a

清理无用镜像、缓存、挂载数据

prune指令默认会清除所有如下资源:

已停止的容器(container)

未被任何容器所使用的卷(volume)

未被任何容器所关联的网络(network)

所有悬空镜像(image)。

Docker中查询磁盘占用情况:

docker system df

https://blog.csdn.net/sky527759/article/details/122834872

find / -type f -size +1G

-type f  :文件类型,-type d:文件夹,-size +1G查找超过1G的文件

上一篇下一篇

猜你喜欢

热点阅读