首页 > 其他分享 >【已解决】docker overlay2占用大量磁盘空间处理方法

【已解决】docker overlay2占用大量磁盘空间处理方法

时间:2023-08-18 11:11:42浏览次数:28  
标签:容器 overlay2 磁盘空间 镜像 docker 目录

在使用docker容器的时候遇到了容量上的问题,做一个记录

处理方式1:
在使用docker时,往往会出现磁盘空间不足,导致该问题的通常原因是因为docker中部署的系统输出了大量的日志内容。

此时,可通过手动或定时任务进行清除。

针对/var/lib/docker/overlay2空间占用很大网上提供了很多解决方案,其中有些误导的说法需要去迁移路径等操作。其实磁盘空间的占用和overlay没关系(它的usage和真实的disk usage相同),它只是一个docker的虚拟文件系统,真实的文件系统是前者/dev/vda1,可以看到路径所指为根目录,所以你要去找是哪里出现了垃圾。

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

[root@iZ docker]# ls
builder buildkit containerd containers image network overlay2 plugins runtimes swarm tmp trust volumes
1
2
在目录中会存在以目录名为前缀,以“-json.log”为后缀的目录文件。使用如下命令会看到该文件的大小:

ll -h
1
然后可使用如下命令对该文件的内容进行清理:

cat /dev/null > *-json.log
1
清理完成可不重启服务,但如果允许建议重启一下docker服务。

在此执行df -h命令之后,你会发现overlay2所占的磁盘空间已经减小。

关于清理的操作可参考文章:《LINUX CENTOS /VAR/LIB/DOCKER/CONTAINER目录导致系统存储爆满,占用大量存储解决方案》

原文链接:《docker overlay2占用大量磁盘空间处理方法》.

处理方式2:
排错过程
df -h
1
发现硬盘被占满了

再用下面命令查看哪个文件夹太大:

du -sh *
1
发现是 /var/lib/docker/overlay 占满了

网上查一下这个目录的作用,说是 overlay/overlay2表示Docker的存储驱动,可以参考一下这篇文章:https://blog.csdn.net/styshoo/article/details/60715942

也就是说容器/镜像等都会存在这个目录下,当量大的时候就会占满硬盘

也可以参考官网(https://docs.docker.com/storage/storagedriver/overlayfs-driver/)

继续在网上搜资料,说可以看看是不是死掉容器过多的原因,使用 docker ps -a看了下,果然是。于是清理了一下无用的容器,硬盘就恢复正常了……

简单办法
多看了一下资料,发现可以使用 docker system prune来自动清理空间,参考下面:

该指令默认会清除所有如下资源:
已停止的容器(container)
未被任何容器所使用的卷(volume)
未被任何容器所关联的网络(network)
所有悬空镜像(image)。
指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
添加 -a 或 --all 参数后,可以一并清除所有未使用的镜像和悬空镜像。
可以添加 -f 或 --force 参数用以忽略相关告警确认信息。
指令结尾处会显示总计清理释放的空间大小。
(https://yq.aliyun.com/articles/272173 )
另外,使用下面命令可以查看docker所占的硬盘大小,如:

 


使用docker,基本上把官方文档的入门教程看完,就能用了。
再自己打个包试试,基本上就OK了。后面遇到问题再深入,都可以。

docker的/var/lib/docker/overlay文件夹突然占满了硬盘
————————————————
版权声明:本文为CSDN博主「Cry丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/haohaoxuexiyai/article/details/111244328

标签:容器,overlay2,磁盘空间,镜像,docker,目录
From: https://www.cnblogs.com/webenh/p/17639886.html

相关文章

  • Docker Build Cache 缓存清理
    Docker18.09引入了BuildKit,提升了构建过程的性能、安全、存储管理等能力。dockersystemdf命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况:[root@test/]#dockersystemdfTYPETOTALACTIVESIZE......
  • docker查看日志的三种方式
    docker查看日志的三种方式:1.dockerlogs--tail=1000容器名称(查看容器前多少行的日志)2.docker容器启动后,可以进入以下位置查看日志(/var/lib/docker/containers/容器ID/容器ID-json.log)(进入容器内部查看日志)3.dockerattach容器名称(实时查看,但是CTRL+C强制退出以后也会影响......
  • docker容器daemon.json配置文件解析
    docker版本高于1.12,配置文件的默认径为:/etc/docker/daemon.json{“api-cors-header”:"",在引擎API中设置CORS标头“authorization-plugins”:[],要加载的授权插件“bridge”:"",将容器附加到网桥“cgroup-parent”:"",为所有容器设置父cgroup“cluster-store......
  • 【技术积累】Docker部署笔记
    服务器环境搭建nacos镜像使用宝塔Docker管理器直接拉起nacos环境并运行注意:在同一台服务器中,nacos只对内网才能注册,图中172.17.0.2是内网地址,在多台服务器中需要跨ip注册服务需要百度自行学习,本次部署使用同一台服务器部署。启动命令//加内存限制启动dockerrun\--nam......
  • docker的简单使用
    @author:BasilGuo@date:Dec.11,2020@desc:docker的简单使用由于参考书目的原因,所有的命令请参考这个网站:https://docs.docker.com/engine/reference/commandline/docker/1.简介1.1.历史虚拟化技术很早就出现了,不过一般都是主机级别的虚拟化,虚拟机技术,此处分为1......
  • Spring Cloud与Docker高并发微服务架构设计实施---注册管理中心
    创建注册管理中心在模块的项目配置pom.xml文件中引入“eureka-server”的依赖<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></depen......
  • mac m1 docker安装mysql
    1、拉取镜像dockerpullmysql/mysql-server2、启动服务dockerrun--namemysql-docker--restartalways--privileged=true\-p3306:3306\-eMYSQL_ROOT_PASSWORD="root"\-eTZ="Asia/Shanghai"\-d mysql/mysql-server说明:-d:后台运行容器-p:指定容器暴露......
  • docker 制作自己的镜像
    1.下载系统镜像(Ubuntu)2.基于下载的镜像创建容器(容器名一个为自己名字全拼)3.容器的启动、停止及重启操作4.怎么查看正在运行的容器和所有容器5.怎么连接及退出容器6.查看容器或镜像的内部信息7.操作容器8.将容器制作成镜像9.将制作好的镜像打成tar包10.将打包好的tar包传给别......
  • dotnet7下docker镜像构建之XML打包丢失问题
    注意暂时值适用.NETSDK7.0.100以上其他版本,可以参考举例中的配置host项目省流原因dotnetpublish发布命令对于引用项目的xml不会拷贝到发布目录举例host项目依赖api项目,api项目依赖utils包,utils包中的xml文件在host项目swagger需要使用xml文件一般包引用xml文件输出配......
  • Docker容器设置自启动
    容器自启动分为两种情况一为新建容器时配置自启参数dockerrun--restart=always容器id或容器名称二为已存在的容器配置自启dockerupdate--restart=always容器id或容器名称取消容器自启dockerupdate--restart=no容器id或容器名称批量设置容器自启dockerupda......