当前位置: 首页 > news >正文

终极方案,清理 docker 占用磁盘过大问题, 亲测有效!

背景

        在笔者的工作测试环境中,使用过程中突然出现根磁盘快吃满了(docker也是使用的根池盘的/var/lib/docker), wtf ? 服务用不了? 当然网上找到了一些常规的清楚docker 日志文件 但是通过df -hT 查看到overlay 卷还是占有超过70%的盘,通过如图可以知道df -h 和 du -sh * 发现/var/lib/docker/overlay2实际物理没有占用多少,但是通过 df -h 查看到 /var/lib/docker/overlay2/{id}/merged 这个目录挂载占用了很多,为何差距如此巨大,这里面肯定存在一些容器系统实际占有的,但是比新部署的多了200G+的盘,可能也有有统计/缓存占有的(这里我也不清楚原因到底多出来的是怎么发生的,可能是操作系统统计问题?,希望有大神指点),翻遍文献,经过无数次测试后总结了下面的步骤,亲测有效。

清理方案

1. 由于是根磁盘所以第一件事情是清理磁盘的其它文件,比如日志,不要的文件 

find / -size +1G -type file

通过这个命令找打文件大 且多的不要文件,然后一一删除掉。

2. 在第一步清理之后开始清理docker 日志文件

echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logsdoecho "clean logs : $log"cat /dev/null > $logdone
echo "======== end clean docker containers logs ========"

 这个是抄的同行的,太懒了 懒得写了。

3. 清理docker tmp 文件 目录在/var/lib/docker/tmp ,接下来怎么做你懂的。

4. 清理dockers 系统的文件 比如 镜像 和 卷,执行下面两个命令

docker system prune -a docker volume prune 

 5. 解决上面提到的问题(overlay2 占用磁盘过大不释放),在容器/etc/docker/daemon.json 添加如下代码

{
"log-opts": {"max-size": "10m","max-file": "3"},"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=1"]
}

如果没有daemon.json文件就新增一个同名文件。最后重启docker。

systemctl stop dockersystemctl start docker

6. 有可能是nexus 或者gitlab 或者harbor 这类的连接占磁盘 所有在做上面步骤之前可以先停一下。

组后效果比上图好很多free 从几十G 变成300G+

写下这个的目的,发现网上的文章不全,或者就没有效果,希望后来者更容易解决问题!看到这里就给个赞呗!!!! 

http://www.lryc.cn/news/17796.html

相关文章:

  • puzzle(1321)时间旅人
  • 活动预告 | 2023 Meet TVM 开年首聚,上海我们来啦!
  • CoreIDRAW 软件的强大功能及适用性
  • JavaScript Window History
  • 2023年人力资源管理师报名和培训费用是多少
  • 2023-2-23 刷题情况
  • 数据归档,存储的完美储备军
  • ES6-11、基本全部语法
  • Spring Boot整合Thymeleaf和FreeMarker模板
  • SQL的四种连接-左外连接、右外连接、内连接、全连接
  • “点工”的觉悟,5年时间从7K到24K的转变,我的测试道路历程~
  • 【Web安全-MSF记录篇章一】
  • 配置Flutter开发环境
  • 23年六级缓考
  • 低代码选型,论协同开发的重要性
  • 【第二十二部分】游标
  • 【面试题】2023高频前端面试题20题
  • Spring解决循环依赖为什么需要三级缓存?
  • Android源码分析 - 回顾Activity启动流程
  • PDMS二次开发(一)——PML类型程序类型与概念
  • 一文揭晓:手机号码归属地api的作用是什么?
  • 电容的结构分类介质封装及应用场景总结
  • 数据结构初阶——时间复杂度与空间复杂度
  • 深度学习之“制作自定义数据”--torch.utils.data.DataLoader重写构造方法。
  • #G. 求约数个数之六
  • 如何为Java文件代码签名及添加时间戳?
  • Xamarin.Forsm for Android 显示 PDF
  • RK3399平台开发系列讲解(LED子系统篇)LED子系统详解
  • LeetCode 432. 全 O(1) 的数据结构
  • 再析jvm