参考docker-ce的相关导出模块的源代码(源代码解读就不做了,不算复杂)
docekr-ce/components/engin/savedocekr-ce/components/engin/load
可以找出打包出的tar包中放layer文件夹与diff_ids标记的文件层的对应关系 。
1. 解压压缩包2. 读取 centos7 和 ip-server 的inspect3. 找出 centos7 和 ip-server 的diff_ids同的层数4. 按照相同的层数依次找到manifest.json中记录的layers文件目录,并把layer.tar的压缩包置空5. 重新打包
测试改处理的导出包在centos:7镜像已存在的环境中可以被正常导入操作 。
代码实现参考 github.com/zn-chen/dockerdiff懒得琢磨也可以直接使用,在安装好go环境下git clone 下来 make && make install 后即可食用 。
【精简docker的导出镜像】
经验总结扩展阅读
- 2023年下半年最差的生肖 谁比较倒霉
- 小苏打有腐蚀性吗
- 2023年下半年最倒霉的生肖 谁的运势比较差
- 芒果怎样储藏时间比较久
- 荔浦芋头的吃法
- 养乌龟放什么植物好 养乌龟适合种的6种植物排行榜
- 钥匙丢了怎样快速开锁
- 蠓虫怎么消灭
- 餐厅适合放什么植物 餐厅适合放的6种植物排行榜
- 煮馄饨放什么调料