docker磁盘爆满,linux docker /var/lib/docker/overlay2占用磁盘原因分析

这篇具有很好参考价值的文章主要介绍了docker磁盘爆满,linux docker /var/lib/docker/overlay2占用磁盘原因分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

提示:这里描述项目中遇到的问题:

某天发现自己的博客网站挂掉了。上腾讯云发现是磁盘已经满了
overlay2占用磁盘空间,docker,linux,容器

原因分析:

一般原因有下列几种情况,逐步分析即可
1.docker镜像占用磁盘
2.docker日志
3./var/lib/docker/overlay2下的容器文件(主要)

解决方案:

一、docker镜像占用磁盘

这种情况先使用 docker images 对象查看有哪些镜像,可以手动删除一些很大不用的,也可以用下面的命令批量删除无用的镜像。

这个命令会删除未被任何容器使用的镜像。

docker image prune   //删除不再使用的镜像

`删除未使用的资源(容器、镜像、卷和网络等)

docker system prune   //这个命令会删除所有未使用的 Docker 资源,包括容器、镜像、卷和网络等

二、docker日志

Docker 容器的日志文件可能会增长并占用大量的磁盘空间。可以检查并删除不再需要的容器日志文件。

这个命令将删除 /var/lib/docker/containers/ 目录下的容器日志文件。

sudo find /var/lib/docker/containers/ -name "*-json.log" -type f -delete   

docker日志linux中由服务产生的日志(重要)

这个命令将直接列出linux中大于100M的文件。

find / -size +100M -type f   

overlay2占用磁盘空间,docker,linux,容器
可以看到大量的日志文件跟jar包,又是一大波能清理的。

三、/var/lib/docker/overlay2下的容器文件(主要)

执行以上方法清除镜像跟大日志后发现,才释放了四个G
overlay2占用磁盘空间,docker,linux,容器

说明根本原因在于overlay2下,于是可以利用以下命令一步步找出根源所在。

/var/lib/docker/overlay2 目录下的大文件是Docker镜像或容器的层(layers)。这些层可能是由于之前的Docker容器未正确清理或删除,导致残留的层文件。

//进入docker目录
cd /var/lib/docker  
//检索文件的最大深度1,即只检索汇总计算当前目录下的文件
du -h --max-depth=1  

overlay2占用磁盘空间,docker,linux,容器

执行后发现确实是overlay2下占用最大(此处有些人也可能是volumes占用很大),根据情况继续往下找,这里我就进入overlay2往下找

overlay2占用磁盘空间,docker,linux,容器overlay2占用磁盘空间,docker,linux,容器

发现有很多容器,仔细发现有几个占用特别大,于是先用命令吧大文件过滤出来

du -h --max-depth=1 --threshold=5G  //只显示大于5GB的文件和目录的磁盘使用情况

overlay2占用磁盘空间,docker,linux,容器

执行发现三个7G的文件夹,我们首先进入第一个文件夹看看到底是哪些文件这么大,继续往下找

overlay2占用磁盘空间,docker,linux,容器

这里出现了两个docker比较重要的文件夹

  1. diff 文件夹: diff 文件夹是一个只读的文件系统层,它包含了Docker镜像的变更内容。当您对容器进行修改或添加新文件时,这些变更会被记录在 diff 文件夹中。每个Docker镜像都有一个对应的 diff 文件夹,用于存储与基础镜像的差异
  1. merged 文件夹: merged 文件夹是一个可读写的文件系统层,它是由基础镜像和 diff 文件夹合并而成的。当您启动一个Docker容器时, merged 文件夹中的内容将作为容器的文件系统。这个文件夹是容器运行时的可写层,您可以在容器中对文件进行修改或添加新文件,这些修改将存储在 merged 文件夹中。

综上所述 这两个文件夹内容是一样的 merged会多一些由容器本身产出的写文件,进merged继续往下找
overlay2占用磁盘空间,docker,linux,容器

终于发现最里面果然还是一些log日志文件,虽然不大但是却耐不住很多。
overlay2占用磁盘空间,docker,linux,容器

sentinel-record.log.2023-01-25.0 文件是Redis Sentinel的日志文件。Redis Sentinel是Redis的高可用性解决方案之一,用于监控和管理Redis主从复制和故障转移。

sentinel-record.log 文件包含了Redis Sentinel的运行日志,记录了Sentinel的各种操作、事件和状态信息。这些日志对于故障排查、性能监控和系统运维非常有用。

可以根据需要删除 sentinel-record.log 文件。然而,在删除之前,请确保您不再需要这些日志文件,或者已经备份了重要的日志信息。另外,您还可以考虑将日志文件进行归档或定期清理,以便释放磁盘空间并保持系统的性能。

由于我是自己的项目,所以这些日志文件统统删除。 删除后可以修改配置限制其日志大小跟数量
对于Sentinel的日志文件,您可以通过配置来限制其大小和生成的数量。以下是一些常用的方法:文章来源地址https://www.toymoban.com/news/detail-713167.html

  1. 日志文件大小限制:您可以通过修改Sentinel的配置文件来设置日志文件的大小限制。在Sentinel的配置文件(通常是 sentinel.conf )中,可以找到日志相关的配置项,例如 logfile-maxsize 。您可以将其设置为所需的大小,以限制日志文件的大小。例如,设置为 logfile-maxsize 10MB 表示日志文件的大小限制为10MB。
  1. 日志文件数量限制:您可以通过设置日志文件的数量来限制生成的日志文件数量。在Sentinel的配置文件中,可以找到类似于 logfile-max-nums 的配置项。您可以将其设置为所需的数量,以限制生成的日志文件数量。例如,设置为 logfile-max-nums 10 表示最多生成10个日志文件。

到了这里,关于docker磁盘爆满,linux docker /var/lib/docker/overlay2占用磁盘原因分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • docker部署项目,/var/lib/docker/overlay2目录满了如何清理?

    今天突然发现跑服务器上的项目挂了,上去看了一下原来是磁盘满了。 看来是目录 /var/lib/docker/overlay2 下占满了磁盘,看看里面是什么。 这一块只是查找哪些文件占满了磁盘,不感兴趣的朋友可以不看。 /var/lib/docker 目录是 docker 的默认目录,进去看看 检索文件的最大深度

    2024年01月21日
    浏览(14)
  • Docker overlay2磁盘占用过高

    Docker overlay2磁盘占用过高主要有以下三个原因:   1、容器日志文件过大,未作限制   2、docker未用容器、镜像、缓存等过多   3、docker默认路径存放不合理   通过以下两条命令可以定位磁盘占用过高原因,可根据查询结果做相应处置。 1、df -h 容量查询 2、du -sh * 文

    2024年02月14日
    浏览(15)
  • 【容器文件系统】了解容器 overlay 文件系统和 /var/lib/docker/overlay2下目录的作用

    浅析 Docker overlay2 文件结构 docker(5): 层 朱双印 有这个问题困惑着我:容器删除 docker rm 后,docker cp 到容器内的文件,在 /var/lib/docker/overlay2 目录中是否还会存在 答案:容器删除后 docker rm 后, 会自动删除 /var/lib/docker/overlay2 中对应的文件 实验步骤 给答案 通过上述实验,我们

    2024年02月16日
    浏览(34)
  • 亲测有效:docker清理Overlay2占用磁盘空间

    使用Docker过程中,长时间运行服务容器,导致不能进行上传文件等操作,通过命令 df -h 发现overlay占用较高。通过命令 docker system prune -a 清理无用镜像、缓存、挂载数据,也没有什么改变。 prune 指令默认会清除所有如下资源: 已停止的容器(container) 未被任何容器所使用的

    2024年02月08日
    浏览(24)
  • /dev/mapper/centos-root或/var/lib/docker/overlay2 占满的解决方法

    实际清理过程如下(省略了不必要的部分) 1.查找占用过大的部分 2.以上可知是docker的镜像和容器的问题,查看是否属实 3.确实有很多无用的镜像和容器,开始清理 4.查看清理的效果 可见一下子就腾出了16G的空间 5.进一步清理(使用 Docker 的垃圾回收功能来清理废弃的镜像和容

    2024年03月17日
    浏览(26)
  • 【docker】解决docker overlay2目录占用大量磁盘空间,导致验证码出不来,报错Can‘t create output stream!

             验证码出现 Can\\\'t create output stream! 报错信息         所在服务器磁盘使用率已经到达100%,经排查,服务器目录 /var/lib/docker/overlay2 占用大量磁盘空间,         使用 【docker system prune】 命令删除清理docker系统空间         获取当前目录占用磁盘大小命令

    2024年01月25日
    浏览(20)
  • Docker-Overlay2磁盘空间爆满清理方法

    在日常线上环境中,我们通常会来做利用Docker来做容器化管理,通过运行容器来执行任务等。但是,随着业务量的不断增大,容器的不断启动,往往会出现磁盘空间不足,1、第一种情况:是因为docker中部署的系统中日志内容的不断扩大。这种情况下,我们可手动,或定时任务

    2024年02月11日
    浏览(30)
  • docker Overlay目录占用的磁盘空间过大

    今天遇到线上机器报警,排查后查到是docker的Overlay目录占用磁盘空间过大,记录一下解决办法。 Docker的Overlay目录是用于存储Docker容器的文件系统的。Overlay是一种联合文件系统,它能够将多个文件系统叠加在一起,形成一个只读的基础文件系统和一个可写的上层文件系统。在

    2024年02月06日
    浏览(22)
  • Docker:overlay2浅析以及解决overlay2 文件过大的问题

    最近在学习docker的实现时看到这么一个概念:Union File System,先让我们来介绍介绍它。 定义:联合文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unit

    2024年02月07日
    浏览(20)
  • docker overlay2 清理

    使用命令进行运行容器时,没对日志文件进行限制,随着时间的增长,日志文件越来越大,如果写日志比较频繁,文件超过100g也是很正常. 第一种,找到对应文件进行删除 进入docker 的containers目录:cd /var/lib/docker/containers 查看容器文件夹占用内存大小: du -sh * 如找到大文件夹,进入该

    2024年02月15日
    浏览(17)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包