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

 更新时间:2022年03月09日 15:52:37   作者:听说唐僧不吃肉  
随着业务量的不断增大,容器的不断启动,往往会出现磁盘空间不足,本文主要介绍了Docker Overlay2磁盘空间占用过大清理的方法实现,感兴趣的可以了解一下

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

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

1、第一种情况

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

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

对于/var/lib/docker/overlay2 空间占用,存在很多误导的方法是去迁移路径等。。
其实磁盘空间的占用和overlay没关系,它的使用和真实的disk使用相同,overlay只是一个docker的虚拟文件系统,真实的文件系统是前者/dev/vda1,可以看到路径所指为根目录。
所以,通过该目录去查找哪里占用资源过大。

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

清理完成可不重启服务,重启更好
清理完后,可通过df -h 查看磁盘占用情况

2、第二种情况

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

Docker中查询磁盘占用情况:

docker system df

在这里插入图片描述

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

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

这样也可清理空间

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

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

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

docker search portainer

在这里插入图片描述

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设置密码:

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

df -hl

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

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

然后重启docker服务

systemctl restart docker

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

相关文章

  • 写给前端的nginx配置指南基于docker所有配置秒级运行(最新讲解)

    写给前端的nginx配置指南基于docker所有配置秒级运行(最新讲解)

    这篇文章主要介绍了写给前端的nginx配置指南基于docker所有配置秒级运行,通过 docker 高效学习 nginx 配置,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • docker 启动具有多个网络接口的容器的方法示例

    docker 启动具有多个网络接口的容器的方法示例

    这篇文章主要介绍了docker 启动具有多个网络接口的容器的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • centos7 安装Jenkins详细介绍

    centos7 安装Jenkins详细介绍

    这篇文章主要介绍了centos7 安装Jenkins详细介绍的相关资料,需要的朋友可以参考下
    2016-11-11
  • docker安装git教程,解决clone地址端口错误的问题

    docker安装git教程,解决clone地址端口错误的问题

    这篇文章主要介绍了docker安装git教程,解决clone地址端口错误的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Docker安装常用组件(mysql,redis)的方法

    Docker安装常用组件(mysql,redis)的方法

    今天小编就为大家分享一篇关于Docker安装常用组件(mysql,redis)的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Ubuntu系统下docker Pull镜像错误timeout解决办法

    Ubuntu系统下docker Pull镜像错误timeout解决办法

    最近在用docker搭个开发环境,发现在拉取镜像的时候有点问题,这篇文章主要给大家介绍了关于Ubuntu系统下docker Pull镜像错误timeout的解决办法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • CentOS7上安装Docker的详细步骤

    CentOS7上安装Docker的详细步骤

    Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单,容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止,下面这篇文章主要给大家介绍了关于CentOS7上安装Docker的详细步骤,需要的朋友可以参考下
    2022-01-01
  • idea连接docker实现一键部署的方法

    idea连接docker实现一键部署的方法

    这篇文章主要介绍了idea连接docker实现一键部署的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 第一次构建、运行、发布、获取docker镜像的步骤详解

    第一次构建、运行、发布、获取docker镜像的步骤详解

    今天小编就为大家分享一篇关于第一次构建、运行、发布、获取docker镜像的步骤详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Docker 如何安装 Nginx

    Docker 如何安装 Nginx

    这篇文章主要介绍了Docker 如何安装 Nginx,帮助大家更好的使用docker容器,感兴趣的朋友可以了解下。
    2020-09-09

最新评论