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

目录
  • 1、第一种情况
  • 2、第二种情况
  • 3、最后,可通过安装portainer 【Docker的图形化管理工具】

在日常线上环境中,我们通常会来做利用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磁盘清理内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决docker磁盘空间不足问题

    docker所在服务器,运行了一段时间后,发现服务器磁盘目录快不够用了.通过du -h --max-depth=1 / 逐级目录排查,发现/var/lib/docker目录文件过大.通过以下方法,解决该问题. 转移数据修改docker默认存储位置 有多种方式修改docker默认存储位置. 最好是在docker安装完后,第一时间修改docker默认存储位置为其他大目录或者磁盘中.规避迁移数据过程中造成的风险. - 停止docker服务 systemctl stop docker - 创建新的doc

  • 关于docker清理Overlay2占用磁盘空间的问题(亲测有效)

    使用Docker过程中,长时间运行服务容器,导致不能进行上传文件等操作,通过命令df -h 发现overlay占用较高.通过命令docker system prune -a 清理无用镜像.缓存.挂载数据,也没有什么改变. 如果你也被这个问题所困扰,咱们就一起看一下 Docker 是如何使用磁盘空间的,以及如何回收. docker 占用的空间可以通过下面的命令查看: $ docker system df prune指令默认会清除所有如下资源: 已停止的容器(container) 未被任何容器所使用

  • 如何清理 Docker 占用的磁盘空间的方法

    Docker 很占用空间,每当我们运行容器.拉取镜像.部署应用.构建自己的镜像时,我们的磁盘空间会被大量占用. 如果你也被这个问题所困扰,咱们就一起看一下 Docker 是如何使用磁盘空间的,以及如何回收. docker 占用的空间可以通过下面的命令查看: $ docker system df TYPE 列出了docker 使用磁盘的 4 种类型: Images:所有镜像占用的空间,包括拉取下来的镜像,和本地构建的. Containers:运行的容器占用的空间,表示每个容器的读写层的空间. Lo

  • CentOS 7.x docker使用overlay2存储方式

    编辑/etc/docker/daemon.json添加以下内容: { "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] } 安装依赖: yum install yum-plugin-ovl -y 否则会报以下错误: May 05 18:20:45 node1 dockerd[49605]: Error

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

    目录 1.第一种情况 2.第二种情况 3.最后,可通过安装portainer [Docker的图形化管理工具] 在日常线上环境中,我们通常会来做利用Docker来做容器化管理,通过运行容器来执行任务等. 但是,随着业务量的不断增大,容器的不断启动,往往会出现磁盘空间不足, 1.第一种情况 是因为docker中部署的系统中日志内容的不断扩大. 这种情况下,我们可手动,或定时任务清理. 对于/var/lib/docker/overlay2 空间占用,存在很多误导的方法是去迁移路径等..其实磁盘空间的

  • Docker磁盘空间使用分析与清理的方法

    本文介绍了Docker磁盘空间使用分析与清理的方法,分享给大家,具体如下: 用了一段时间Docker后,会发现它占用了不少硬盘空间.还好Docker 1.13引入了解决方法,它提供了简单的命令System来查看/清理Docker使用的磁盘空间. 前情提要 #MyVersion [root@dockercon ~]# docker version Client: Version: 17.12.0-ce API version: 1.35 Go version: go1.9.2 Git commit

  • Docker容器导致磁盘空间不足无法访问的解决方法

    目录 问题: 1.进入运行的容器目录 2.查看容器的配置信息 3.删除日志文件 4.正常进入容器 问题: 客户反馈说系统操作,出现问题,查询数据报错,我第一想到的是Redis是不是挂了导致一些存在里面的数据查询失败,后面查看服务是正常的,于是想进入容器项目排查日志,结果进入容器异常错误 1.进入运行的容器目录 输入命令进入容器目录 docker exec -it 容器id bash 提示错误信息: failed to create runc console socket: mkdir /tmp/

  • 关于Linux服务器磁盘空间占满问题的解决方法

    下面我们一起来看一篇关于Linux服务器磁盘占满问题解决(/dev/sda3 满了),希望碰到此类问题的人能带来帮助. 今天下班某电商技术部leader发现个问题,说他们服务器硬盘满了.把日志文件都删掉了,可硬盘空间依旧满.于是df -h查看了下各个挂载点的状况(如下图). /dev/sda3占用了100%,那么我们du -s -h ./*看下目录的占用情况(如下图). 在工作中,我们也许会遇到这样的问题,发现某个磁盘空间快满了,于是,找到一些无用的大文件将其删除后,发现磁盘空间还是没有释放掉,

  • Linux磁盘空间被未知资源耗尽的解决方法

    在linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间,最后造成磁盘空间占用100%,整个系统无法正常运行.这种情况下,通过df和du命令查找的磁盘空间,两者是无法匹配的,可能df显示磁盘100%,而du查找目录的磁盘容量占用却很小. 遇到这种情况,基本可以断定是某些大文件被某些程序占用了,并且这些大文件已经被删除了,但是对应的文件句柄没有被某些程序关闭,造成内核无法回收这些文件占用的空

  • docker清理大杀器/docker的overlay文件占用磁盘太大的解决

    [看网上都是什么迁移文件的就感觉不靠谱,治标不治本啊(这不应该是一个新生代coder的样子)] du -sh* 一路查下去,发现overlay这个文件夹已经爆了. docker system prune -a 才清理了7g的空间,那个文件夹还是30g 磁盘占用路从100%下降到80%左右,这哪里行啊,再跑两天还是满! 最后大杀器来了 安装portainer docker安装教程一堆 我这里使用dokcer-compose部署的所以下面是配置 portainer: image: portainer

  • docker磁盘空间清理的解决办法

    前段时间遇到docker磁盘空间太少,无法写入数据的问题.起因是因为我在本地(Mac Pro)运行了多个mysql容器,并且导入了一部分线上数据,最后还没导入完毕就已经没有可用空间了. 我最开始给docker分配的磁盘空间是80GB,然后当出现无法写入的时候已经是只剩余0.6GB了. 可以使用下面的命令来查看docker容器和镜像磁盘占用情况: docker system df 可以看到类似如下的输出,包括镜像(Images).容器(Containers).数据卷(Local Volumes).

  • linux下使用 du查看某个文件或目录占用磁盘空间的大小方法

    du -ah --max-depth=1 这个是我想要的结果 a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度. du命令用来查看目录或文件所占用磁盘空间的大小.常用选项组合为:du -sh 一.du的功能:`du` reports the amount of disk space used by the specified files and for each subdirectory (of directory arguments)

随机推荐