我正在尝试重现我docker images --digests自己生成的哈希值。
我尝试运行docker save -o image.tar <image>提取它并运行cat metadata.json | shasum -a 256(以及一些变体,例如通过 jq 进行管道传输或修剪它),但无法匹配 docker 给我的哈希值。
我应该尝试的工作,或者我可以使用其他机制吗?
从这篇文章可以清楚地看出
Docker 镜像的 ID 是一个摘要,其中包含镜像 JSON 配置对象的 SHA256 哈希值
您尝试对shasum保存的图像进行 JSON 配置是正确的,但您使用了错误的配置文件。
$ docker image save da86e6ba6ca1 -o img.tar # note the hash
$ tar -xvf img.tar
$ ls
4ab1c614436ccb31a69026cb4e8404a8c8a6503acb3596f9c23283c6cec42321
da86e6ba6ca197bf6bc5e9d900febd906b133eaa4750e6bed647b0fbe50ed43e.json
img.tar
manifest.json
$ cat manifest.json| shasum -a 256
f5ac61be9063b8cc34260a4f18693d3eafcc51af43c98853937dead3b8f0952d - # wrong hash
$ cat da86e6ba6ca197bf6bc5e9d900febd906b133eaa4750e6bed647b0fbe50ed43e.json| shasum -a 256
da86e6ba6ca197bf6bc5e9d900febd906b133eaa4750e6bed647b0fbe50ed43e - # correct
Run Code Online (Sandbox Code Playgroud)
因此,要自己计算哈希值,您需要使用以图像哈希值作为名称的 JSON 文件,而不是清单。
| 归档时间: |
|
| 查看次数: |
3857 次 |
| 最近记录: |