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磁盘清理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker数据卷挂载及宿主机目录挂载使用和区别

    Docker数据卷挂载及宿主机目录挂载使用和区别

    本文主要介绍了Docker数据卷挂载及宿主机目录挂载使用和区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • docker部署Nestjs的简单配置实现

    docker部署Nestjs的简单配置实现

    使用Docker部署NestJS应用程序可以确保在不同的环境中运行一致,并且避免了由于依赖关系或配置问题导致的部署错误,本文主要介绍了docker来部署Nestjs的简单配置,感兴趣的可以了解一下
    2024-02-02
  • docker安装ros2详细步骤介绍

    docker安装ros2详细步骤介绍

    大家好,本篇文章主要讲的是docker安装ros2详细步骤介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • docker容器如何配置hosts文件问题

    docker容器如何配置hosts文件问题

    这篇文章主要介绍了docker容器如何配置hosts文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • docker 报错 Exited (1) 4 minutes ago的原因分析

    docker 报错 Exited (1) 4 minutes ago的原因分析

    这篇文章主要介绍了docker 报错 Exited (1) 4 minutes ago的原因分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker下mysql设置字符集的方法

    Docker下mysql设置字符集的方法

    这篇文章主要介绍了Docker下的mysql设置字符集的方法,需要的朋友可以参考下
    2018-03-03
  • Docker部署php运行环境(php-fpm+nginx)

    Docker部署php运行环境(php-fpm+nginx)

    Docker 是一种流行的容器化平台,可以帮助开发人员快速创建、部署和管理容器化应用程序,本文将介绍如何使用 Docker 搭建 PHP 开发环境服务器,让您能够轻松地开始 PHP 开发工作,感兴趣的可以了解一下
    2023-11-11
  • 使用docker制作分布式lnmp 镜像

    使用docker制作分布式lnmp 镜像

    最近在学习docker相关知识,顺便把docker制作分布式lnmp 镜像的过程分享给大家,包括Nginx配置文件和PHP文件的修改代码也一并给出,感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • Docker创建tomcat容器实例后无法访问(HTTP状态404)

    Docker创建tomcat容器实例后无法访问(HTTP状态404)

    本文主要介绍了Docker创建tomcat容器实例后无法访问,HTTP状态显示404,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • 关于ROS2安装与docker环境使用

    关于ROS2安装与docker环境使用

    大家好,本篇文章主要讲的是关于ROS2安装与docker环境使用,感兴趣的同学赶快来看看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论