如何将所有操作系统/架构的Docker映像拉/推到Dockerhub?[duplicate]

toiithl6  于 2022-12-18  发布在  Docker
关注(0)|答案(1)|浏览(130)

此问题在此处已有答案

How to copy multi-arch docker images to a different container registry?(2个答案)
昨天关门了。
我正在尝试从Dockerhub中提取Docker映像并将其复制到我自己的Dockerhub注册表中。我希望对我正在复制的标记下可用的所有os/体系结构执行此操作。例如,node:latest具有以下体系结构:

linux/amd64
linux/arm/v7
linux/arm64/v8

如果运行以下命令:

docker pull node:latest
docker tag node:latest myregistry/node:latest
docker push myregistry/node:latest

我的注册表中最后只有linux/amd 64,因为我的笔记本电脑是Intel的,只能拉/推Intel架构,我希望也能拉/推arm架构,这样M1用户就可以从我的注册表中拉。
我该怎么做?映像已经构建好了,所以我不想重新构建它们,而且我没有M1。我只想将已经构建好的映像“复制”到注册表中。

64jmpszr

64jmpszr1#

这似乎已经达到了目的:

docker pull node:latest
docker manifest inspect # <- note the digests of the architectures you want to include

# Create a tag for any digests you are interested in
docker tag node:latest@sha256:867c09f220095929f3ab4113e7530a6e38833f2eb4317cb8998307528026621f myregistry/node:latest-amd64
docker tag node:latest@sha256:55298bd901ba7d9b914842c0cbb1087571b50121791846a17b78fa02f904962b myregistry/node:latest-arm64

# Push to your registry
docker push myregistry/node:latest-arm64
docker push myregistry/node:latest-amd64

# Create and push the manifest
docker manifest create myregistry/node:latest --amend myregistry/node:latest-arm64 --amend myregistry/node:latest-amd64
docker manifest push myregistry/node:latest

Dockerhub将在“最新”标签下列出两种架构:

相关问题