Docker导入镜像报错:invalid diffID for layer xxx: expected “sha256:xxx“, got “sha256:xxx“

之前有遇到过一个问题就是自己更改了导出后的镜像中的文件导致无法导入到Docker,自己有更改过其中的镜像文件,重新打包后导致hash值不一致。

解决方案:

  1. 解压docker save后的压缩包

  2. 找到压缩包根目录下的一个hash串.json的文件例如ef1a611b3e5aa1dd046be2ea9cc7e0998d35c9d7be87c7aa5a3629bb17a0a8ca.json替换rootfs.diff_ids其中的hash值

"rootfs": {
    "type": "layers",
    "diff_ids": [
      "sha256:da55b45d310bb8096103c29ff01038a6d6af74e14e3b67d1cd488c3ab03f5f0d",
      "sha256:14fbd8039ba4ad82671ca7275ed5b2075363991760fc9ae073bc22f70ca2775d",
      "sha256:83b767b0665544297a032b627f947eb9e3cdf68aa768149dbfa98a8ae5c2b4f8",
      "sha256:c1f221ef5c4c58f252c69ada2834862fb6a0562c5861be283dfd165759fa9303",
      "sha256:cc300120398fb3f903014e7d80ac320e2d6a15c0b35c195485fe608faa9027be",
      "sha256:3e9d654886230779d60971a33ca82744e24a8f7952f02f36d81154e01c98c600",
      "sha256:cc300120398fb3f903014e7d80ac320e2d6a15c0b35c195485fe608faa9027be",
      "sha256:3e9d654886230779d60971a33ca82744e24a8f7952f02f36d81154e01c98c600",
      "sha256:302f394c6d33785f11091585e61bbaf3c62e7e339aac9bda9d132dfcf5176b83",
      "sha256:a8f5218b6bea1a99d2bba040f83e4c4674cb526bf87812a84318f15357c5dd64",
      "sha256:35c280a6012ee84919104bdf506dc4cac5d1444d1d02188e482022802dd12aac",
      "sha256:c973cb65578ef4a8b39a9507a9c51876121fd46afe93960594c02f34a84e2617",
      "sha256:b135c7c5273cd28a3ba517e6aa8d0fd000a15ff44546da56380e70e975756caf",
      "sha256:4ac42ffcfcbf4cd072aff8bb15fb11d18c7826c8e222db735b9170d782eff9ac",
      "sha256:de09318217b0a100ae519242733a37b1ab39a267ffd2580d56559f68131ad1eb"
    ]
  }
  1. 保存后重新用tar进行压缩,再进行docker load导入 成功!

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×