Docker 镜像层大小分析器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/docker-image-layer-size-analyzer。
技能介绍
Docker 镜像为何越变越大
在持续迭代的服务里,镜像体积往往会悄悄膨胀。一次看似无害的 apt-get install,或者临时复制进去的调试文件,都会变成长期占用空间的层。更隐蔽的是,即使构建过程中删除了文件,这些内容仍可能留在镜像层里,最终被推送到镜像仓库,让拉取、缓存和分发都变慢。
这个技能如何解决问题
Docker 镜像层大小分析器从 Docker Registry HTTP API v2 获取镜像层元数据,并结合 dive 做逐层内容分析。它会先解析层之间的叠加关系,再定位被后续层覆盖但仍占用空间的文件与目录。
核心能力包括:
- 识别明显偏大的镜像层,给出体积占比与影响范围
- 发现因删除或覆盖产生的冗余空间,而不是只看层总大小
- 基于多阶段构建给出可执行的优化方向,例如分离编译环境与运行时依赖
工作过程大致分为三步:先获取镜像层列表和 digest,再逐层解析文件变化,最后汇总成一份带优先级的优化建议,帮助团队把精力放在收益最大的层上。
适用边界与注意点
该技能适合在构建后审查、镜像瘦身和 CI 检查中使用,但不会替你重写 Dockerfile。分析结果依赖镜像层结构的清晰度,如果镜像经过多次 squash 或使用了自定义打包方式,可读性会下降。
另外,优化建议需要结合实际运行需求判断。某些被删除的文件可能在调试或回滚场景下有价值,不能只看体积数字就下结论。
使用场景
- 构建完成后镜像体积异常膨胀,需要逐层定位是哪个步骤引入了冗余的编译工具或临时文件
- CI 流水线中需要自动检查镜像是否包含构建过程中已删除但仍占用空间的敏感文件
- 准备将基础镜像推送到生产 registry 前,评估多阶段构建能释放多少运行时无关的体积
- 线上镜像拉取时间过长,需要分析层结构找出可合并或精简的臃肿层
适合人员
- DevOps 工程师:需要在 CI 构建完成后快速定位镜像膨胀的具体来源,减少部署等待时间
- 平台架构师:负责制定镜像构建规范,希望系统性地消除团队长期积累的镜像体积问题
- 安全合规人员:需要验证镜像是否残留了不应存在的调试工具或临时文件,确保生产环境安全
- 后端开发工程师:在编写 Dockerfile 时需要量化多阶段构建的实际收益,优化构建策略