docker overlay2占用大量磁盘空间问题排查汇总

docker用久了以后有较大概率遇到这个问题,表现就是/var/lib/docker/overlay2下占用90%以上的硬盘空间(下图是别的帖子的,我就懒得自己截图了,就做个问题示意图而已)。
在这里插入图片描述

一、检查是否有多余的容器和镜像

可以通过命令检查:

// 查看所有容器
docker ps -a
//查看所有镜像
docker images
//删除容器
docker rm 容器id或容器名称
//删除镜像
docker rmi 镜像id
//查看docker内部的硬盘使用情况
docker system df

或者一步到位

//清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
docker system prune
//清理更干净、彻底,可以将没有容器使用的Docker镜像都删掉。
docker system prune -a

二、清除容器日志

运行时间较长(1年以上)容器日志文件会堆积较多,占用大量硬盘,有的网上有的人就是这种情况,主要清除/var/lib/docker下的日志文件,清除脚本如下:

echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log) #containers下没有的话可以往上一级
for log in $logs
        do
                echo "clean logs : $log"
                cat /dev/null > $log
        done
echo "======== end clean docker containers logs ========"

可以建立一个.sh文件手动执行或者设定定时任务来执行。

三、检查容器是否存储空间泄露

这个排查的过程,我的情况运气成分很大,一开始,我把日志都清除了,但清出来的空间很少,1t也就清出了10g左右。后来在检查docker的时候发现一个容器正常运行,但业务上没用到,当时是想着多腾点空间,然后请别的大佬看看docker什么地方占用硬盘。
奇迹出现了:我把这个容器连同镜像一起删除后,发现硬盘瞬间多了900多G(原来1t空间只剩10几g)。前面试过清除多余/非正常运行容器和镜像,清除docker日志,都没什么明显作用。
于是我猜想,是这个容器代码有问题,造成了硬盘空间泄露。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值