FAQ

构建Image Index、Image Manifest、Image Config、Image Layers之间的DAG,充当索引。首先通过Content Descriptor找到Image Index,Image Index中包含了Image Manifest的Content Descriptor,通过Content Descriptor中的platform字段进行platform的过滤,找到对应的Image Manifest的Content Descriptor。接着开始拉取Image Manifest,Image Manifest中包含了Image Config的Content Descriptor还有Image Layers的Descriptor。通过这两个Content Descriptor就可以找到对应的Image Config和Image Layers了。

Untitled

DiffIDs is an array of layer content hashes (DiffIDs), in order from bottom-most to top-most. Image Config的RootFs部分放的就是DiffIDs,是针对镜像的每一层的内容解压后的hash值。Digest是一个内容摘要算法目前Image spec中主要是用sha256,ChainID是根据DiffID计算出来的,其计算公式如下:

ChainID(L₀) =  DiffID(L₀)
ChainID(L₀|...|Lₙ₋₁|Lₙ) = Digest(ChainID(L₀|...|Lₙ₋₁) + " " + DiffID(Lₙ))

Untitled

Image Index

Image Manifest

Image Config

Image Layer

Content Descriptor

对Image Index、Image Manifest、Image Config、Image Layer等的描述,描述这些内容的MediaType、Digest、 Size,以及可能的下载的Url、额外的Annotations信息、还有Platform等。通过Content Descriptor将Image Spec中的几个核心组件构建成一个DAG。每次获取到一个Content Descriptor就可以知道下一个要获取的内容是什么。