当前位置: 首页 > news >正文

docker 目录下的overlay2层的太多,导致占用大量占用磁盘空间怎么办呢。【docker目录清理】

  这两年开始用docker 来管理生产环境,每个应用独立启动一个docker容器,每个项目也打包一个docker镜像,进行更新和发布,最近竟然出现了磁盘空间占用满的情况。关键是我的磁盘也是100G的空间那种,按道理说不至于那么吓人,于是变开始查原因。

      然后在网上找了几个有用的命令【当然前提是,我们在搞docker容器的时候,记得把数据挂载到本地磁盘上,才能用下面的命令】

docker system prune -af --volumes

      上面这个命令是 Docker 中终极且高风险的资源清理命令,作用是:强制、全自动地清理 Docker 所有 “未被使用” 的系统资源(包括容器、镜像、网络、构建缓存,以及通常不会被默认清理的卷),且跳过所有交互式确认步骤,执行后会不可逆地删除这些资源,核心目的是释放磁盘空间。

find /var/lib/docker/overlay2/ -size +100M -type f 

  上面这个命令是找到这个目录下大于100M的,然后再执行删除命令如下【根据实际情况进行删除,因为有些文件被你删除了之后,会损坏镜像。如果损坏了镜像也没关系,重新生成换一个名字,然后重新pull到本地】。

sudo find /var/lib/docker/overlay2/ -size +100M -type f -name "app.jar" -exec rm -f {} +

      下面这个命令是清理log,有些容器的log也可能会很大,可以找到对应的文件来进行rm -rf 掉。

du -ha /var/lib/docker/containers/ | grep "json.log" | sort -rh

      上面这些搞完了之后,记得重启一下dcoker 。如果不方便的话,可以重启一下对应的几个docker 容器。

       通过上面操作之后,磁盘空间有了,够我继续造了。。。

 还是想找出为什么从根源解决这个问题

        主要的问题就是overlay2好大,这个是docker里面容器或者镜像的层,那为什么会产生这么多呢。

        原因是我docker镜像确实每两周几个项目都需要进行上线更新,发版,然后导致层数一直越来越多了,因为我们这边是把代码都扔到镜像里面去的。

        docker 层的生命周期

  构建镜像时:Base Layer → Layer1 → Layer2 → ... → Layer N运行容器时:镜像层(只读) + 容器层(可写,在overlay2/diff目录)停止容器:可写层保留(为了数据持久化)删除容器:可写层被标记为未使用,但磁盘空间不立即释放
说明构建镜像要注意,动态镜像变的东西放到dockerfile的文件后面一点。
尽量还是不要经常的更新容器,不要用推镜像的方式进行更新代码。应该保留一个基础镜像,然后把目录挂载出来,更新代码就更新这个目录挂载的内容就好了。
就是先构建一个大的基础包,每次将需要更新的内容传进容器,再更新容器。
http://www.jsqmd.com/news/101113/

相关文章:

  • 数据编程规范
  • 5(补)
  • 15 万级新能源 SUV 哪些值得入手?懂车人都选这 4 款
  • C# FileStream拷贝大文件
  • xilinx常用文档说明
  • [核桃] - P10770 反转子区间
  • AI绘画不是“终点”,而是创作者的“新起点”
  • LeagueAkari智能游戏助手:5大核心功能全面解析与实战应用指南
  • MyBatis 全面解析 Spring Boot 集成实战
  • [ICPC 2022 Nanjing R] 工厂重现
  • 微信多设备登录终极解决方案:WeChatPad平板模式完整指南
  • 详细介绍:算法王冠上的明珠——动态规划之斐波那契数列问题
  • 音乐格式解放攻略:NCM转MP3轻松实现跨平台播放
  • 写了这么多年 Java,这几个神仙技巧你真的用过吗?
  • Zipkin 深度解析:核心原理、集成实战与最佳实践
  • 20 万级新能源 SUV 标杆车型盘点:从技术到体验的全面对比
  • Java新手做毕设:用雷池WAF护SpringBoot项目,避免演示时出洋相
  • 微服务踩坑实录:SpringCloud集群用雷池WAF,解决3个跨服务防护难题
  • Google Drive下载神器:gdrivedl使用完全指南
  • 7.2.2-bpf对tcp请求的监控(项目)
  • AES-GCM加密全流程解析
  • 开源精神再现辉煌:LobeChat推动AI普惠化进程
  • 第三讲:如何用 AI 快速生成可用应用——实战示例
  • NVIDIA Profile Inspector终极指南:从入门到精通的完整图形优化手册
  • 内容解锁神器:Bypass Paywalls Clean 让你告别付费墙烦恼
  • Linux CFS(完全公平调度器)原理与实现细节全解析(2)
  • SillyTavern轻松搞定版本升级:从焦虑到自信的无忧指南
  • 10分钟精通原神智能助手:从零到精通的完整配置指南
  • 视频创作者必看!这7个素材网站
  • LangChain 1.0 VS LangGraph 1.0:智能体我该用哪一个?