docker磁盘空间爆满 通过overlay2 目录名查找对应容器

这篇具有很好参考价值的文章主要介绍了docker磁盘空间爆满 通过overlay2 目录名查找对应容器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、docker文件系统占用分析

du -sh  /var/lib/docker/*

看到占用磁盘空间最大的目录是docker存储根目录下的overlay2目录

docker overlay2目录,docker,docker,容器,运维

再查看docker存储根目录下的overlay2目录下哪个目录占用空间最大

du -s  /var/lib/docker/overlay2/*|sort -rn

找出最大的这个overlay2目录的目录名是:ef129273a3f100feec4970bee90b0b83d9f1b170f6a76668eba9bdcfbf5f4ac8

下面需要使用这个目录名字符串去反向查找这个目录属于哪个容器,找到这个容器,就可以做进一步问题处理。这个容器就是导致磁盘空间爆满的罪魁祸首。

docker overlay2目录,docker,docker,容器,运维

2、使用shell脚本通过overlay2 目录名查找对应容器

vi locateContainer
containerIDList=$(docker ps -aq --no-trunc)
echo -n "Enter the target DirectoryName to search and locate around all containers: "
read target
for containerID in $containerIDList
do
    b=$(docker inspect $containerID|grep MergedDir|grep $target|wc -l)
    containerName=$(docker inspect --format '{{.Name}}' $containerID|awk -F "/" '{print $2}')
    if [ $b -ge 1 ];
    then
        echo ""
        echo  "命中,正在遍历容器:$containerName,结果是命中."
        echo ""
    else
        echo  "未命中,正在遍历容器:$containerName,结果是未命中."
    fi
done
bash locateContainer

会提示输入查询的overlay2 目录名:ef129273a3f100feec4970bee90b0b83d9f1b170f6a76668eba9bdcfbf5f4ac8

docker overlay2目录,docker,docker,容器,运维

然后输出命中的容器名称:xxx

3、docker 命令输出中go模版过滤使用

以docker inspect 命令为例

比如查找容器ID为30a489f2d2e92324e8d2938c126da6754a18f68330664f255c3cb53c5d57445c的容器的Merge目录

docker inspect --format '{{.GraphDriver.Data.MergedDir}}' 30a489f2d2e92324e8d2938c126da6754a18f68330664f255c3cb53c5d57445c

go 模版写法参照下图

.GraphDriver.Data.MergedDir

层级结构如下

通过命令

docker inspect 30a489f2d2e92324e8d2938c126da6754a18f68330664f255c3cb53c5d57445c|less

然后搜索想要的特定项目 比如GraphDriver

docker overlay2目录,docker,docker,容器,运维文章来源地址https://www.toymoban.com/news/detail-598041.html

到了这里,关于docker磁盘空间爆满 通过overlay2 目录名查找对应容器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Linux系统Docker下面/var/lib/docker/overlay2磁盘空间清理

    1. 查看磁盘占用 df -h 2. Docker 的内置 CLI 指令docker system df 可用于查询镜像(Images)、容器(Containers)和本地卷(Local Volumes)等空间使用大户的空间占用情况。 ~]# docker system df 查看详细 ~]# docker system df -v 3. 空间清理 【1】通过 Docker 内置的 CLI 指令docker system prune来进行自动空

    2024年02月06日
    浏览(38)
  • 【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日
    浏览(34)
  • Docker overlay2磁盘占用过高

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

    2024年02月14日
    浏览(27)
  • Docker下/var/lib/docker/overlay2空间清理

    Docker使用overlay2存储驱动来管理容器镜像和数据卷。如果不进行清理,overlay2会占用大量的磁盘空间。以下是/var/lib/docker/overlay2空间清理的步骤: 停止所有运行的Docker容器: 删除所有未使用的镜像: 删除未使用的Docker数据卷: 清理overlay2目录中未使用的文件。使用以下命令列

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

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

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

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

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

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

    2024年02月15日
    浏览(28)
  • docker overlay2 是存放什么的?

    docker overlay2是Docker中的存储驱动之一,用于管理镜像和容器层的数据。它使用最小存储空间来存储像层这样的临时数据。 overlay2本质上是多层存储驱动。它将镜像和容器层都视为独立的匿名临时文件系统。然后通过联合挂载将这些层组合成所需的最终文件系统。 overlay2使用两个

    2024年02月15日
    浏览(28)
  • Docker 深度清除镜像缓存 (overlay2)

    Docker 深度清除镜像缓存 (overlay2) 一般情况下,运维清理镜像是通过命令 docker rm i 删除镜像的。但是这条命令不会删除docker build命令产生的缓存文件。 这个时候需要使用 docker system 的系列命令来做相关处理。 输出: 参数: -a 删除全部未使用的镜像 -f 或 --force 不经过确认

    2024年02月08日
    浏览(28)
  • 不小心删除了docker/overlay2怎么办?

    服务器硬盘容量达到顶峰,没有空闲空间。利用df -h的时候查看到/data/docker/overlay2占用最大。以为这里面都是docker的缓存文件,删除也无妨,所以直接通过 rm -rf 命令删除。(没有做任何备份)删完之后整个人就傻了,所有的容器运行全部失败。 此时!不要慌,不要着急做其

    2024年02月15日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包