OCI映像清单和Docker V2.2映像清单之间的差异

问题描述 投票:1回答:1

我需要将OCI映像清单转换为Docker v2.2映像格式,反之亦然。但是我无法找到两者之间的任何区别,是否存在任何实际区别或相同?

docker oci
1个回答
0
投票

Docker Image Manifest V 2,模式2

注册表映像清单定义了组成容器注册表上映像的组件(请参见容器注册表部分)。我们将使用的更常见的清单格式是Docker Image Manifest V2 Schema 2(更简单地说是V2.2)。还有一种V2架构1格式,该格式通常被使用,但由于与V1的向后兼容原因,它比V2.2​​更为复杂。

V2.2清单格式是具有以下顶级字段的JSON Blob:

[schemaVersion-在这种情况下为2

[mediaType-application/vnd.docker.distribution.manifest.v2+json

[config-容器配置Blob的描述符

[layers-层Blob的描述符列表,与容器配置的rootfs顺序相同]

Blob描述符是包含3个字段的JSON对象:

mediaType-application/vnd.docker.container.image.v1+json用于容器配置,或application/vnd.docker.image.rootfs.diff.tar.gzip用于层

size-Blob的大小,以字节为单位

[digest-内容摘要

这里是V2.2清单格式的示例(适用于Docker Hub繁忙框映像:]

{
  "schemaVersion": 2,
  "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
  "config": {
    "mediaType": "application/vnd.docker.container.image.v1+json",
    "size": 1497,
    "digest": "sha256:3a093384ac306cbac30b67f1585e12b30ab1a899374dabc3170b9bca246f1444"
  },
  "layers": [
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 755724,
      "digest": "sha256:57c14dd66db0390dbf6da578421c077f6de8e88edd0815b4caa94607ba5f4c09"
    }
  ]
}

OCI图像清单

OCI映像格式本质上与Docker V2.2格式相同,但有一些区别。

mediaType-必须设置为application/vnd.oci.image.manifest.v1+jsonconfig.mediaType-必须设置为application/vnd.oci.image.config.v1+json

层中的每个对象必须具有mediaTypeapplication/vnd.oci.image.layer.v1.tar+gzipapplication/vnd.oci.image.layer.v1.tar

来源:https://containers.gitbook.io/build-containers-the-hard-way/#registry-format-oci-image-manifest

© www.soinside.com 2019 - 2024. All rights reserved.