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

这篇具有很好参考价值的文章主要介绍了终极方案,清理 docker 占用磁盘过大问题, 亲测有效!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

        在笔者的工作测试环境中,使用过程中突然出现根磁盘快吃满了(docker也是使用的根池盘的/var/lib/docker), wtf ? 服务用不了?

        当然网上找到了一些常规的清除docker 日志文件,清理后但是通过df -hT 查看到overlay 卷还是占有超过70%的盘。通过下图可以知道df -h 执行的结果 和 du -sh * 发现/var/lib/docker/overlay2对比占用差距巨大,"du -sh *" 算出的实际不是很大,但是通过 df -h 查看到 /var/lib/docker/overlay2/{id}/merged 这个目录挂载占用了很多。

        为何差距如此巨大?这里面肯定存在一些容器系统实际占有的,但是比新部署的多了200G+的盘,可能也有统计问题/缓存占有的(这里我也不清楚原因到底多出来的是怎么发生的,可能是操作系统统计问题?初步猜测是overlay2 没有覆盖内核的数据,希望有大神指点),翻遍文献,经过无数次测试后总结了下面的步骤,亲测有效。

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

清理方案

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 $logs
        do
                echo "clean logs : $log"
                cat /dev/null > $log
        done
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 docker



systemctl start docker

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

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

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

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

补充:还有一种情况 overlay2 目录过大 ,没有挂卷 导致docker runtime 文件持续写入,在宿主机看到overlay2 某个目录特别大, 请参考这位作者的。

https://juejin.cn/post/7016872244408221732

通过docker overlay2 目录名查找对应容器名_51CTO博客_docker overlay2目录越来越大文章来源地址https://www.toymoban.com/news/detail-402728.html

到了这里,关于终极方案,清理 docker 占用磁盘过大问题, 亲测有效!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何清理 Docker 占用的磁盘空间

    Docker 很占用空间,每当我们运行容器、拉取镜像、部署应用、构建自己的镜像时,我们的磁盘空间会被大量占用。 如果你也被这个问题所困扰,咱们就一起看一下 Docker 是如何使用磁盘空间的,以及如何回收。 docker 占用的空间可以通过下面的命令查看: TYPE  列出了docker 使

    2024年02月07日
    浏览(63)
  • mysql-bin日志清理,并设置expire_logs_days时间,mysql占用空间过大问题

    mysql-bin日志清理,并设置expire_logs_days时间,mysql占用空间过大问题 最近发现生产环境的服务器磁盘空间吃紧,查下到底是哪里占用的空间比较大,最后发现,mysql占用空间蛮大的。 发现mysql占用的空间很大,具体看看哪些数据占用了空间 发现mysql-bin占用了很大的空间 mysql-b

    2024年02月01日
    浏览(52)
  • python中使用selenium进行爬虫时,导致(内存已缓存)备用内存占用过大导致崩溃问题,3个解决方案

    在使用python进行爬虫的时候,使用selenium进行爬取的时候经常会出现已缓存过大的情况,如果缓存出现过大之后再次执行的话就会计算机拒绝,但是这个时候我们的内存又有很多空间可以使用,一开始我以为是占用文件过多然后点360的那个进行文件整理和清理垃圾,结果效果

    2023年04月08日
    浏览(53)
  • 清理Elasticsearch占用的内存和磁盘空间

    一,遇到OutOfMemoryError问题 打开Kibana,发现连不上Elasticsearch了,提示Cannot connect to the Elasticsearch cluster,检查: 发现是Elasticsearch service dead挂了。 继续检查错误日志/var/log/elasticsearch/elasticsearch.log 疑似Elasticsearch内存溢出。 通过 确实发现系统内存几乎100% ; 进一步的对各程序的

    2024年04月16日
    浏览(52)
  • Linux显示磁盘空间不足,/tmp文件夹占用100%问题分析和解决方案

            系统运行过程中发现无法上传文件,第一反应是磁盘空间不足导致,登录服务器后查看文件存放的空间充足,但是无法上传文件且命令行的tab键自动补充也提示空间不足。最后经过搜索和分析发现是/tmp 文件夹占用100%导致。以下记录分析和解决流程。         服

    2024年02月05日
    浏览(78)
  • git仓库清理瘦身解决 .git文件夹过大的问题

    git仓库清理找了很多资料和方案都没有很完美执行成功的;现在找到一个完美方案,分享给大家;希望能帮助大家 1、gitlab代码开发了仓库开发了五年了,代码只有10M;clone的时候要700多兆很浪费时间 2、创建分支和切换分支耗时,导致电脑崩溃 3、公司内部接入codereview服务;

    2024年02月02日
    浏览(81)
  • Docker Desktop Vmmem内存占用过高问题解决方案

    内存占用过高原因 主要原因是docker desktop的实现及基于wsl(Windows子系统),相当于在Windows上同时开了一个虚拟机,如果不对wsl的资源进行限制,它将会极大的获取系统资源.所以我们只需要对wsl的最大资源进行限制即可 解决方案 修改wsl配置文件 官方地址 具体配置: 在用户目录创建

    2024年02月05日
    浏览(48)
  • 如何清理 docker 磁盘空间 附讲解(全)

    补充docker知识点,可看我之前的文章:Docker零基础从入门到精通(全) docker 镜像特别容易占空间,稍微不注意可能磁盘爆满 通过 df - h 查看的时候,磁盘已经达到95%: 先用 docker system df 命令查看 再用 docker system prune 清理 (清理命令 谨慎使用,注意作用以及波及范围!!!

    2024年02月01日
    浏览(45)
  • 快速清理_卸载docker_找到不用的进程_centos磁盘爆满_清理磁盘---Linux工作笔记071

    查看大文件,并且按照大小排名  cd / | du -h |sort -hr|head -30 可以看到根据不用的结果进行删除 可以看到在/data/dict目录很大,里面的都可以删除 然后再去卸载docker,要不然,没有磁盘是卸载不了的 systemctl stop docker systemctl stop docker.socket yum remove docker-ce 来卸载docker 然后再来看使用

    2024年02月22日
    浏览(44)
  • 如何清理docker在var目录下的大量空间占用

    Docker 在 `/var` 目录下可能会产生大量空间占用,主要原因是镜像、容器、数据卷和临时文件的累积。要清理这些资源,你可以使用以下方法: **注意:这些操作会删除你的 Docker 资源,所以在执行前,请确保已备份重要数据。** 1. 删除未使用的 Docker 镜像 运行以下命令删除所

    2024年02月09日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包