问题描述

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

某天发现自己博客网站挂掉了。上腾讯发现磁盘已经满了
在这里插入图如图片描述

原因分析

一般原因有下列几种情况,逐步分析即可
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   

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

执行以上方法清除镜像跟大日志发现,才释放了四个G
在这里插入图片描述

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

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

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

在这里插入图片描述

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

![在这里插入图片描述](https://imgblog.csdnimg.cn/59e025f5f8804a14a38efae6a82ee148.png在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

综上所述 这两个文件夹内容是一样的 merged会多一些由容器本身产出的写文件,进merged继续往下找
在这里插入图片描述

终于发现里面果然还是一些log日志文件,虽然不大但是却耐不住很多。
在这里插入图片描述

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

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

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

由于我是自己项目,所以这些日志文件统统删除。 删除后可以修改配置限制其日志大小跟数量
对于Sentinel的日志文件,您可以通过配置限制大小生成的数量。以下是一些常用的方法

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

原文地址:https://blog.csdn.net/weixin_43756185/article/details/132709101

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_23744.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注