是否可以针对不同的架构分别推送 docker 个镜像?

Is it possible to push docker images for different architectures separately?

据我所知,docker buildx build --push 将使用您在 --platform 参数中指定的图像架构覆盖现有图像架构。据我了解,您必须在使用 buildx 时同时构建和推送所有架构。但是,我知道官方 docker 图像使用 arm64 build farm 来构建 linux/arm64 图像。这怎么可能?他们只使用 docker push 而没有使用 buildx 吗?如果是这样,是否意味着 docker push 不会像 buildx 那样覆盖现有架构?如果我想在不同的机器上构建和推送多个架构,最好的方法是什么?

您可以在集群中的不同主机上使用单独的命令构建和推送,每个命令发送到不同的标签。然后在推送每个平台的所有标签后,您可以使用 docker manifest 创建一个多平台清单,该清单指向具有单个标签的所有图像。此工具目前需要启用实验性支持。

有关 docker manifest 的更多详细信息可以在文档中找到:https://docs.docker.com/engine/reference/commandline/manifest/