镜像分析工具 diving v0.4.2 版本正式发布
diving最新使用使用rust重构,程序体积更小,性能更快,此重构版本特性如下:
- 支持命令行与网页两种模式
- 基于HTTP API的形式获取镜像数据,不再需要安装docker程序
- 支持多个平台,包括:linux,windows,macos
- 也直接分析导出的镜像数据,如:diving file:///tmp/redis.tar
使用diving精简docker镜像
在docker支持多阶段构建(multi-stage builds)之后,构建运行时的镜像仅将在最后阶段复制依赖的文件即可,对于golang
与rust
等仅需要复制运行文件即可。基于alpine
为基础镜像构建,基本均在20MB以下。
镜像Layer汇总
docker镜像由一层层的layer构成,第一层为基础镜像,而后面的镜像为构建脚本时生成的,在针对layer分析时需要一层层的来优化考虑。
基础镜像为运行镜像的最底层,建议考虑选择alpine
等精简的镜像,也仅安装运行时所依赖的模块,减少引入各种漏洞的风险。
首先可以先看镜像汇总,其包括4项指标:
分数
: 根据layer中浪费的空间等数据计算的分值,可作为镜像优化的直观指标镜像大小
: 镜像所有层级的汇总以及保存时压缩的大小其它层级总大小
: 除基础镜像层的其它层级汇总,等同于项目构建所有添加的数据大小浪费的空间大小
: 其它层级重复出现、修改或删除的文件汇总大小,此为主要优化点
由上面的4点指标可快速得出Layer的分析结论,明确第一层基础镜像是否过大(如果是可选择基于alpine),其它层级总大小是否符合预期(如果比项目预期过大则按层分析所添加数据),浪费的空间大小是否可避免(对于后续层级重复更新、删除等文件是否无效操作)。
镜像Layer层级分析
若感觉某个layer数据不合理时,如何针对其做具体分析呢?docker hub
提供了构建镜像每个layer对应的命令,简单的分析可直接查看命令是否合理。而layer包括了哪些文件,以及具体相关文件的具体信息则需要具体解析layer的目录树才可获取,docker
运行时则是将所有layer解析后层级重叠汇总完整目录树。
如上所示,镜像分层数据可按层级选择、按文件大小过滤、按是否更新或删除过滤(每层的文件均为新增,因此无需提供是否新增过滤)、文件名称搜索等功能,通过以上的筛选配置,则可快速分析该层数据是否有优化空间。常用的方法如下:
选择分层+勾选更新或删除选项+展开所有目录
: 查看每层更新或者删除了的文件,确认此类操作是否可以精简,避免无效数据的产生选择分层+勾选文件大小>=1MB+展开所有目录
: 查看每层较大的文件(可按场景选择不同的大小过滤),判断此类文件是否应用运行时所需,若非必须可在生成时避免此类大文件的生产选择分层+关键字筛选
: 可以筛选每层中的无效文件,例如压缩包、文本文件等(需要注意明确是否的确无需使用) ,也可下载该文件确认内容
小结
diving提供快速便捷的镜像分析方式,可以定期针对项目镜像汇总生成分析报告,优化镜像构建逻辑,精简避免无效镜像数据。diving提供了terminal与以web形式,web的测试地址可以直接使用以下地址:https://diving.npmtrend.com/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Tpflow V7.0.3 PHP 工作流引擎日常更新
欢迎使用 Tpflow V7.0.3 工作流引擎 TpFlow 工作流引擎是一套规范化的流程管理系统,基于业务而驱动系统生命力的一套引擎。彻底释放整个信息管理系统的的活力,让系统更具可用性,智能应用型,便捷设计性。Tpflow 团队致力于打造中国最优秀的 PHP 工作流引擎。坚持这么多年,都在开发工作流,你还不来点个赞吗https://gitee.com/ntdgg/tpflow支持下我们吧!**** 1、修复日志返回错误; 原日志采用echo修正为return 2、修复转出条件下审批无权限; 转出条件下,选中角色接受会导致审批中心没有权限BUG 3、新增ajax调用审批流信息; 可以使用ajax调用流程审批组件信息 4、优化工作流弹窗信息 工作流弹窗优化为固定大小,改为tpflow.wopen调用打开 5、新增模板穿透功能; 增加工作流模板调用其他数据表功能 工作流标题模板,支持变量索引。比如你希望将 uid 转换为人名,请假流程:张三申请请假3天;那么请假流程:【uid@soft_user@username】申请请假【days】天 系统会根据变量,读取 soft_user 表的 u...
- 下一篇
MiniExcel 1.31.0 已经发布,.NET 处理 Excel 工具
MiniExcel 1.31.0 已经发布,.NET 处理 Excel 工具 此版本更新内容包括: 1.31.0 [New] 支持 Fields #490 (via @jsgervais) [New] 支持是否写入 null values cell #497 (via @0MG-DEN) [Bug] 修复calc chain.xml 问题 #491(via @ArgoZhang) [Bug] 修复特定文件 /xl 定位错误 #494 (via @ArgoZhang) 详情查看:https://gitee.com/dotnetchina/MiniExcel/releases/1.31.0
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池