小知识:Docker Overlay2磁盘空间占用过大清理的方法实现

在日常线上环境中,我们通常会来做利用Docker来做容器化管理,通过运行容器来执行任务等。

但是,随着业务量的不断增大,容器的不断启动,往往会出现磁盘空间不足,

1、第一种情况

是因为docker中部署的系统中日志内容的不断扩大。

这种情况下,我们可手动,或定时任务清理。

对于/var/lib/docker/overlay2 空间占用,存在很多误导的方法是去迁移路径等。。

其实磁盘空间的占用和overlay没关系,它的使用和真实的disk使用相同,overlay只是一个docker的虚拟文件系统,真实的文件系统是前者/dev/vda1,可以看到路径所指为根目录。

所以,通过该目录去查找哪里占用资源过大。

通常情况下与overlay2的同级目录下会有如下的目录:

%小知识:Docker Overlay2磁盘空间占用过大清理的方法实现-猿站网-插图

占用大量空间的日志文件位于containers下,该目录下存在如下目录:

%小知识:Docker Overlay2磁盘空间占用过大清理的方法实现-1猿站网-插图

在该目录下,会存在以目录名为前缀,以“-json.log”为后缀的目录文件。

例如:

%小知识:Docker Overlay2磁盘空间占用过大清理的方法实现-2猿站网-插图

使用如下命令会看到该文件的大小:ll -h

然后,使用> *-json.log ,将该文件进行清理

清理完成可不重启服务,重启更好

清理完后,可通过df -h 查看磁盘占用情况

2、第二种情况

可通过执行docker system prune 命令可用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)

Docker中查询磁盘占用情况:

docker system df

%小知识:Docker Overlay2磁盘空间占用过大清理的方法实现-3猿站网-插图

可看到Images占用了8.534G,Conainers占用244G。

docker system prune -a【慎用】命令清理更干净、彻底,可以将没有容器使用的Docker镜像都删掉。

这样也可清理空间

3、最后,可通过安装portainer 【Docker的图形化管理工具】

Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。

1、可通过下列命令查询当前有哪些Portainer镜像

docker search portainer

%小知识:Docker Overlay2磁盘空间占用过大清理的方法实现-4猿站网-插图

2、下载镜像

docker pull docker.io/portainer/portainer

3、镜像下载成功后,接下来启动容器

docker run -d -p 9000:9000 –restart=always -v /var/run/docker.sock:/var/run/docker.sock –name portainer-test docker.io/portainer/portainer

执行完该语句后,用宿主机9000端口关联容器中的9000端口,并给容器起名为portainer-test。执行完该命令之后,使用该机器IP:PORT即可访问Portainer。

访问方式:http://IP:9000

4、首次登录时,需要注册用户,给admin设置密码:

%小知识:Docker Overlay2磁盘空间占用过大清理的方法实现-5猿站网-插图

如果是本机的话,可以选择local,选择完,点击Connect即可连接到本地docker;

%小知识:Docker Overlay2磁盘空间占用过大清理的方法实现-6猿站网-插图

然后查看首页中是不是挂载了很多Volumes:

%小知识:Docker Overlay2磁盘空间占用过大清理的方法实现-7猿站网-插图

如果存在很多Volumes,将【unuse】的全部给删除掉【remove】掉,便可清掉很大空间。

清完之后,再回去看看磁盘占用。

df -hl

我这里就不做演示,因为没必要清理。

4、最后,占用大量overlay文件内存大小,可以选择进入你docker中的overlay目录,通过du -sh *查看下面哪个目录占用的内存比较大,一般是里面的merged目录和diff目录下的bin中生成了太多的执行文件,把那些删掉就行了,只需要留下bash即可。

然后重启docker服务

systemctl restart docker

到此这篇关于Docker Overlay2磁盘空间占用过大清理的方法实现的文章就介绍到这了,更多相关Docker Overlay2磁盘清理内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/xu710263124/article/details/115622534

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:ssh服务器拒绝了密码 请再试一次已解决(亲测有效)

2023-3-9 14:14:20

建站知识

小知识:docker-compose容器互相连接的实现

2023-3-9 14:29:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索