当前位置: 首页 > 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.gsyq.cn/news/111895.html

相关文章:

  • [ICPC 2022 Nanjing R] 工厂重现
  • Java新手做毕设:用雷池WAF护SpringBoot项目,避免演示时出洋相
  • Google Drive下载神器:gdrivedl使用完全指南
  • 第三讲:如何用 AI 快速生成可用应用——实战示例
  • LobeChat能否对接Asana项目管理?任务分配AI辅助
  • LeagueAkari智能游戏助手:5大核心功能全面解析与实战应用指南
  • 支付宝的“药柜”野心:从AQ到阿福,蚂蚁为何死磕医疗AI?
  • 怎么查看自己Ubuntu剩余空间有多少个G呢?
  • 微信多设备登录终极解决方案:WeChatPad平板模式完整指南
  • LobeChat镜像优势详解:为何它成开源大模型前端首选?
  • 纪念币预约神器:3步实现高效自动预约的终极指南
  • 网盘直链解析终极方案:彻底告别下载限制的完整指南
  • vue中的props详解
  • Google Drive高效下载终极指南:解锁无限下载潜力
  • LangChain构建智能文档分析系统的7个核心技术模块
  • NVIDIA TensorRT-LLM高性能推理框架解析
  • 纪念币预约自动化终极指南:高效提升预约成功率
  • Helm vs 原生K8s:部署效率对比实测
  • 零基础入门:VSCode和Anaconda的Python开发环境搭建
  • 企业级应用中的数据库连接异常处理实战
  • LobeChat适配LoRA微调模型的方法与注意事项
  • 低功耗低电流2按键2路触摸检测IC-VKD104CR SOP8触摸触控芯片原厂
  • 给文科生看的Kubernetes:用快递系统理解容器编排
  • Qwen3-8B批量推理实战:Transformers pipeline应用
  • 3倍速!微PE安装Win10的极致优化技巧
  • 5分钟原型开发:用快马验证编程范式选择
  • Molecular Operating Environment (MOE) 完整安装与使用攻略
  • 5分钟快速验证:你的项目是否会有模块导入问题
  • 自学嵌入式day32,线程
  • 金运环球:金银走势分化待非农破局,早盘关注关键技术位防守