我正在尝试将一堆图像推送到我在Amazon中的公共注册表。这些映像应该可以在不同架构(amd64、arm、ppc64le、s390x)的主机上使用。
基本上,在AWS登录后,我会在本地拉出我需要的图像,标记它们并将它们推送到$MY_REGISTRY
podman pull alpine
podman tag alpine $MY_REGISTRY/alpine:latest
podman push $MY_REGISTRY/alpine:latest但是,这些图像只能在amd64主机上使用.
我注意到原始图像保存了清单列表:
podman manifest inspect alpine
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 528,
"digest": "sha256:4ff3ca91275773af45cb4b0834e12b7eb47d1c18f770a0b151381cd227f4c253",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 528,
"digest": "sha256:3c66139adbd2513f9fc56eff206513ffc8356b282bed31a4e74c7eb926b850aa",
"platform": {
"architecture": "arm",
"os": "linux",
"variant": "v6"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 528,
"digest": "sha256:0615cdd745d0b78e7e6ac3a7b1f02e4daefa664eae0324120955f4e4c91bea3f",
"platform": {
"architecture": "arm",
"os": "linux",
"variant": "v7"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 528,
"digest": "sha256:c3c58223e2af75154c4a7852d6924b4cc51a00c821553bbd9b3319481131b2e0",
"platform": {
"architecture": "arm64",
"os": "linux",
"variant": "v8"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 528,
"digest": "sha256:72af6266bafde8c78d5f20a2a85d0576533ce1ecd6ed8bcf7baf62a743f3b24d",
"platform": {
"architecture": "386",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 528,
"digest": "sha256:0f3aeb63bb71ccd3ba0020772f5617e50946a4f2713953c3f494203f1544ea03",
"platform": {
"architecture": "ppc64le",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 528,
"digest": "sha256:83167bc8418071fc178d191ed604f44792c94ad3c3ac26350c29d2445f6a9644",
"platform": {
"architecture": "s390x",
"os": "linux"
}
}
]
}但是,标记的图像没有:
podman manifest inspect $MY_REGISTRY/alpine
WARN[0001] Warning! The manifest type application/vnd.docker.distribution.manifest.v2+json is not a manifest list but a single image.
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"config": {
"mediaType": "application/vnd.docker.container.image.v1+json",
"size": 1472,
"digest": "sha256:e66264b98777e12192600bf9b4d663655c98a090072e1bab49e233d7531d1294"
},
"layers": [
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 2897375,
"digest": "sha256:ff309671352dd8bb4f487772b942ab34acb26811d2ab2b6fa659a9ef84b11cb4"
}
]
}我如何标记图像并保留清单列表,以便当我将它推到注册表时,它可以在任何架构上使用?
发布于 2022-06-08 18:13:07
将图像解压缩清单到您的本地平台(或至少在码头)。有各种工具可以在注册中心之间复制图像,包括谷歌的吊车、RedHat的斯斯科皮奥和my 雷格。例如使用regclient的regctl:
$ regctl image copy alpine:latest localhost:5000/library/alpine:latest
$ regctl manifest get localhost:5000/library/alpine:latest
Name: localhost:5000/library/alpine:latest
MediaType: application/vnd.docker.distribution.manifest.list.v2+json
Digest: sha256:686d8c9dfa6f3ccfc8230bc3178d23f84eeaf7e457f36f271ab1acc53015037c
Manifests:
Name: localhost:5000/library/alpine:latest@sha256:4ff3ca91275773af45cb4b0834e12b7eb47d1c18f770a0b151381cd227f4c253
Digest: sha256:4ff3ca91275773af45cb4b0834e12b7eb47d1c18f770a0b151381cd227f4c253
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/amd64
Name: localhost:5000/library/alpine:latest@sha256:3c66139adbd2513f9fc56eff206513ffc8356b282bed31a4e74c7eb926b850aa
Digest: sha256:3c66139adbd2513f9fc56eff206513ffc8356b282bed31a4e74c7eb926b850aa
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/arm/v6
Name: localhost:5000/library/alpine:latest@sha256:0615cdd745d0b78e7e6ac3a7b1f02e4daefa664eae0324120955f4e4c91bea3f
Digest: sha256:0615cdd745d0b78e7e6ac3a7b1f02e4daefa664eae0324120955f4e4c91bea3f
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/arm/v7
Name: localhost:5000/library/alpine:latest@sha256:c3c58223e2af75154c4a7852d6924b4cc51a00c821553bbd9b3319481131b2e0
Digest: sha256:c3c58223e2af75154c4a7852d6924b4cc51a00c821553bbd9b3319481131b2e0
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/arm64
Name: localhost:5000/library/alpine:latest@sha256:72af6266bafde8c78d5f20a2a85d0576533ce1ecd6ed8bcf7baf62a743f3b24d
Digest: sha256:72af6266bafde8c78d5f20a2a85d0576533ce1ecd6ed8bcf7baf62a743f3b24d
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/386
Name: localhost:5000/library/alpine:latest@sha256:0f3aeb63bb71ccd3ba0020772f5617e50946a4f2713953c3f494203f1544ea03
Digest: sha256:0f3aeb63bb71ccd3ba0020772f5617e50946a4f2713953c3f494203f1544ea03
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/ppc64le
Name: localhost:5000/library/alpine:latest@sha256:83167bc8418071fc178d191ed604f44792c94ad3c3ac26350c29d2445f6a9644
Digest: sha256:83167bc8418071fc178d191ed604f44792c94ad3c3ac26350c29d2445f6a9644
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/s390xhttps://stackoverflow.com/questions/72549515
复制相似问题