docker overlay2占用大量磁盘空间清理

12 篇文章 0 订阅
5 篇文章 0 订阅

docker overlay2占用大量磁盘空间清理

环境

docker版本:

Docker version 1.13.1, build 7f2769b/1.13.1

linux版本

Linux version 3.10.0-693.2.2.el7.x86_64

前因

线上系统出现问题,磁盘空间不足,导致线上系统不可用,最终定位到了问题原因,这篇文章就是记录清理overlay2目录的。

这篇文章相对来说是经验分享或者是记录把,也是历练下自己的总结能力,因为docker自身了解不是很深入,有什么不足的地方感谢大佬们指点。

正文

通过各种途径查询清理overlay2相关资料,分为两种

  • 第一种:通过命令清理docker,例如下

    • docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
    • docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉

这里的命令都尝试过了,这些也是经常清理的,所以效果不是很大,但是可以尝试下,操作时一定要先知道这个命令的作用,我上面只是命令的概述,不详细

  • 第二种就是迁移docker

    • 先不说操作步骤,迁移肯定要重启容器,这就意味者服务会中断,对线上环境来说这是不切合实际的,所以直接忽略。(想要了解可以在网上找下很多的,在此就赘述了)

以上通过各种途径查阅资料好似整体无济于事。

之所以去查阅各种资料,主要是对docker不是很内行,且进到overlay发现里面文件都是和容器相关的文件,就没有深入去看,怕误操作导致容器不可用,所以自己不敢轻易删除什么,那到此为止,我回过头再去看下,这里面到底存储了什么,大致猜测一定是日志并且可以清理的。

下图 overlay2目录 12G
在这里插入图片描述

再进去看overlay目录,这个文件名字应该就是容器id
在这里插入图片描述

然后找到那个4.3G的目录进去看看,可以看到logs这个目录占4.2G,这个目录下面也是我们服务产生的日志,真相大白了,这个日志不应该在这出现的,我们已经映射到物理机上了,docker-componse 配置问提,先不管他,先解决清理这个目录,那就把这个目录下面的日志,echo -> ‘’ file
在这里插入图片描述

到这里就清理下logs目录,其实不建议删除,这个删除容器不一定能释放这个空间,所以建议使用echo -> ‘’ -> [file],批量清理 ls [path] | xargs -I x -n 1 sh -c “echo > x”

本文章所需的命令:

du -sh *
罗列出当前目录文件所占磁盘大小

du [文件名字] -sh
查看指定文件占磁盘空间大小

echo -> ‘’ -> [文件名字]
清空指定文件内容

ls [目录名字,或者模糊搜索] | xargs -I x -n 1 sh -c “echo > x”
批量清空文件内容
例如:清除当前文件夹下的以system开始且以journal后缀的文件 ls system*.journal | xargs -I x -n 1 sh -c “echo > x”

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化技术,而overlay2是Docker使用的一种存储驱动。在Docker环境中,overlay2允许多个镜像和容器共享相同的基础镜像,以节省磁盘空间和加快容器的启动速度。 然而,随着您在Docker上创建和删除镜像和容器的数量增加,overlay2镜像和容器层会逐渐累积,占用大量磁盘空间。为了清理这些不再使用的overlay2镜像和容器层,您可以采取以下步骤: 1. 停止所有正在运行的容器。使用命令"docker ps -a"查看正在运行的容器,并使用"docker stop"命令停止它们。 2. 删除不再使用的容器。使用命令"docker rm <container_id>"删除不再使用的容器。 3. 清理未使用的镜像。使用命令"docker images -a"查看所有镜像,并使用"docker rmi <image_id>"删除不再使用的镜像。 4. 清理overlay2层。在Docker存储目录(通常是/var/lib/docker)中,overlay2层被存储在一个名为overlay2的目录下。使用命令"ls -l /var/lib/docker/overlay2"查看overlay2层的内容,并手动删除不再使用的层。 此外,您还可以使用Docker提供的一些工具进行清理操作。例如,可以使用docker system prune命令来清理未使用的容器、网络和图像。此命令可能会非常有用,因为它会自动清理不再使用的内容,而无需手动执行上述步骤。 总的来说,清理overlay2可以帮助您释放磁盘空间,并保持Docker环境的高效性能。记得定期清理,以避免磁盘空间不足和性能下降的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值