精簡docker的導出鏡像( 二 )

參考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 后即可食用 。

推薦閱讀