系统运维之docker磁盘爆满-搭配解决方法

这篇具有很好参考价值的文章主要介绍了系统运维之docker磁盘爆满-搭配解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 问题描述:日常巡检发现本地registry仓库磁盘爆满,如何解决? 

解决步骤分析:

  1. 确定哪个文件或者目录爆满?
  2. 什么原因引起的爆满?
  3. 确认此目录或者文件作用?
  4. 确认解决方式?
  5. 配置预防手段
  • 直接上图,查看哪里满了?
    系统运维之docker磁盘爆满-搭配解决方法,docker,容器,运维,linux
    此处看出为/var/lib/docker/overlay2目录爆满

    看到这里应该心理应该有个概念:此次磁盘爆满和docker有关了,一般docker占用磁盘过多有以下几种情况(拿纸笔圈起来记):
               1. docker镜像占用磁盘空间过多
               2. docker日志占用磁盘过多
               3. /var/lib/docker/overlay2下的容器文件过多(大部分是这种情况)
    往下看今天遇到的情况符合那种嘞?
  • 继续深入查看具体哪个文件竟然占用如此大的空间!
    系统运维之docker磁盘爆满-搭配解决方法,docker,容器,运维,linux
    此处发现是/containers目录爆满了
    进入看到,/containers这个目录高达27G文件,不满才怪,
    这里给大家讲解一下:

    /var/lib/docker 是 Docker 默认的数据存储位置,包括 Docker 镜像、容器和卷。该目录下的子目录包括:

  • /containers:存储容器相关的数据和元数据,包括容器的配置文件和日志文件;
  • /image:存储 Docker 镜像的文件系统和元数据;
  • /volumes:存储 Docker 卷的数据和元数据。
    图上发现/containers目录占用磁盘高达27G,如下图:已知/containers目录下有若干个<container_id>,每个容器都有一个唯一的标识符<container id> ,在每个容器目录中,有以下文件和目录:系统运维之docker磁盘爆满-搭配解决方法,docker,容器,运维,linux
    系统运维之docker磁盘爆满-搭配解决方法,docker,容器,运维,linux
  • 由上图可以看出是某个容器占用磁盘过高,开始下一步分析,看看什么原因引起的爆满,继续深入!
  • 系统运维之docker磁盘爆满-搭配解决方法,docker,容器,运维,linux系统运维之docker磁盘爆满-搭配解决方法,docker,容器,运维,linux看到这里各位应该都能发现了,是由于json.log这个日志文件太多,这里对这个文件分析一下:此日志是容器生成的所有输出,该输出保存在主机计算机上的日志文件中。这些日志文件可以帮助您了解Docker容器的健康状况、调试问题,并监视应用程序行为,但是dokcer日志文件可以变得很大,因为他们会持续记录容器生成的所有输出。不过不定期清理这些日志文件,他们将占用大量的磁盘空间。当Docker容器日志过大时,可能会导致调试问题过于复杂或深度使用Docker日志分析工具成为不可避免的任务。
  • 到目前为止,问题原因,位置,都已经确定,应该讨论解决办法,目前的解决办法我个人分析分为两种:
    删除 和 清空    
    为什么有两种解决办法?这里解释一下,删除的话,是直接把文件删除,这是最快速,最简单的方式,当然也有一定的风险:有时候如果贸然删除了日志文件,可能正在跑的服务日志就没地方写,但是该服务如果一直打开了该文件,那么写的时候,服务只认文件描述符,虽然你把文件删除了,但是之前建立的 文件描述符一直存在,该服务还可以一直在该文件描述符的位置上写log,即便是你删除后,重新创建一个同样命名的文件,该服务也不会将log写到重新创建的文件中,还是因为文件描述符已经存在了,重新创建文件后,不是原来的文件描述符。这个具体看你有没有服务在调用日志文件,同时,这也是另一个解决方法-清空存在的理由
    清空:即清空文件,保留原文件,只将原文件的内容清空。
  • 下面介绍几个清空的命令,注意:慎用!慎用!
    手动清空:
    1.>/logs/file.log
    2.cat /dev/null > /logs/file.log
    
    脚本常用清空方式:
    3.echo "">/logs/file.log
    
    冒号清空:
    4. :>/logs/file.log

    附上解决问题图片:
    系统运维之docker磁盘爆满-搭配解决方法,docker,容器,运维,linux注意:在执行指令的时候,虽然有时候文件确实被清空了,但是使用 或者1s 指令查看的时候,文件的大小并没有变化,但是在指令输入前后如果使用df -h指令查看log文件所在盘符的大小,发小og文件所在盘符的空间确实被释放了。或者在log所在文件夹使用du -sh指令,查看,也会发现log文件的大小变了,之所以使用I 或者ls 指令查看时,文件大小没有变化,可能是该文件一直被进程占用, 或者是查看的逻辑有一些不同吧
    预防手段会在评论区发布,敬请期待~

  • 最后:如果大家对关于docker其他原因造成的磁盘空间不足的问题,欢迎留言,看到就会回复,后面也会出解决镜像,容器文件等原因磁盘空间不足的帖子。谢谢支持~文章来源地址https://www.toymoban.com/news/detail-793833.html

到了这里,关于系统运维之docker磁盘爆满-搭配解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 快速清理_卸载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日
    浏览(30)
  • (六)关于Linux中服务器磁盘爆满问题的几个解决思路

    在监控服务器性能的时候,发现服务器的磁盘占用很大,几乎快要爆满,具体的表现可能如下: 1、应用服务访问卡顿甚至失败; 2、数据库访问失败; 3、文件上传失败 等等 通过命令 df -h 查看磁盘占用情况,发现如下: 这里的占用是清除过的,所以并不算特别高。 这种现

    2024年02月04日
    浏览(35)
  • (六)关于Linux中服务器磁盘爆满问题的几个解决方案

    在监控服务器性能的时候,发现服务器的磁盘占用很大,几乎快要爆满,具体的表现可能如下: 1、应用服务访问卡顿甚至失败; 2、数据库访问失败; 3、文件上传失败 等等 通过命令 df -h 查看磁盘占用情况,发现如下: 这里的占用是清除过的,所以并不算特别高。 这种现

    2024年02月10日
    浏览(36)
  • Linux运维之shell基础

    基本语法: 注意事项: ①[ 条件判断式 ],中括号和条件判断式之间必须有空格 ②if 后要有空格 例如,现在写一个if.sh脚本文件 基本语法: 注意事项: (1)case 行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。 (2)双分号“;;”表示命令序列结束,相当于

    2024年02月02日
    浏览(40)
  • Linux运维之初识shell

    系统定时任务需要用到 crontab 命令,但是使用此命令有一个前提,即需要打开 crond 服务。为了不那么复杂,可以直接使用我之前学的 systemctl 命令重新启动 crond 服务。 语法:``crontab [-e -l -r] ` 选项:-e 编辑crontab定时任务;-l 查询系统crontab任务;-r 删除当前用户的所有cronta

    2023年04月27日
    浏览(31)
  • 运维之道—生产环境安装mysql

    目录 1.前言 2.部署安装 2.1 下载mysql5.7版本的yum仓库 2.2 安装yum仓库 2.3 安装mysql-server 2.4 启动mysql-server 3. 生产配置 3.1 登录mysql 3.2 修改root账户密码 3.3 配置mysql

    2024年01月21日
    浏览(35)
  • CentOS运维之根目录扩容

    若home分区有足够的空间且从来不使用,则可以将home分区空间扩容给/根目录 1.解除挂载并删除/home卷 若提示分区正在被使用,则通过名称查询占用进程并将进程杀死 2.分配冗余空间给根目录 1.分区 使用fdisk等命令对冗余空间创建一个分区 2.创建pv卷 使用pvcreate命令创建pv卷 3

    2024年01月18日
    浏览(44)
  • 大数据云计算运维之Nginx反向代理与负载均衡

    一、Nginx概述 1.1 概述 Nginx(“engine x”)是一个高性能的 HTTP /反向代理的服务器及电子邮件(IMAP/POP3)代理服务器。 官方测试nginx能够支撑5万并发,并且cpu,内存等资源消耗却非常低,运行非常稳定。最重要的是开源,免费,可商用的。 Nginx还支持热部署,几乎可以做到7 *

    2024年02月11日
    浏览(38)
  • Apache Doris 极简运维之BE扩缩容(1)

    已部署三个BE节点并且状态显示正常运行中 CPU :1C CPU型号 :ARM64 内存 :2GB 硬盘 :36GB SSD VM镜像版本 :CentOS-7 Apahce Doris版本 :1.2.4.1 集群规模 :1FE * 3BE 注意:DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!! 所以强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节

    2024年02月11日
    浏览(22)
  • 【powershell】Windows环境powershell 运维之历史文件压缩清理

    🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油! 目录 一、Power Shell概述 1.1 Windows Power Shell简介 1.2 PowerShell是什么 1.3 windo

    2024年02月04日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包