容器镜像摘要是否唯一标识镜像?内容变更会改变摘要吗?
是,对镜像内容的任何修改都会生成不同的Digest(排除哈希碰撞)
关键逻辑说明:
镜像摘要是镜像索引或镜像清单JSON文档的哈希值。——谷歌对OCI容器镜像Digest的定义
OCI镜像的Digest是对**镜像清单(Manifest)或镜像索引(Index)**的哈希计算结果,但这两个文档直接关联着镜像的实际内容:
- 镜像清单会逐一记录镜像所有分层(Layer)的SHA256哈希值,这些分层哈希就是对应镜像内实际文件内容的哈希。
- 镜像索引用于多架构镜像场景,它包含不同架构下镜像清单的哈希值,最终仍会关联到具体的镜像分层内容哈希。
当修改镜像内的任意文件内容时,对应的分层内容会发生变化,该分层的SHA256哈希值必然改变。这会导致引用该分层哈希的镜像清单内容更新,进而使得镜像清单的哈希(也就是Digest)随之改变。如果是多架构镜像,镜像索引的内容也会因清单哈希变化而更新,最终Digest同样会不同。
内容的提问来源于stack exchange,提问作者Tom Boutell
相关产品推荐
相关产品推荐

