首页 > 解决方案 > 如何在 docker 的一个标签下推送具有不同 OS/ARCH 的多个摘要?

问题描述

我对 docker 比较陌生,并且在其他存储库中看到我们可以在 docker 中使用不同的 OS/ARCH 在同一标签下推送多个摘要。例如:

在此处输入图像描述

我怎样才能达到同样的效果?现在,每当我docker push [REPO_LINK]从不同的架构中进行操作时,它都会用它的架构替换最后一个推送的。谢谢!

标签: docker

解决方案


我知道有两种选择。

首先,您可以buildx在多个节点上运行构建,每个平台一个,而不是使用qemu. 为此,您将使用docker buildx create --append将其他节点添加到构建器实例。这样做的缺点是您需要可从运行的节点访问的节点,docker buildx这通常不适用于临时云构建环境。

第二个选项是使用实验docker manifest命令。每个构建器都会推送一个单独的标签。最后,您将使用docker manifest create构建清单列表并将docker manifest push其推送到注册表。由于这是一项实验性功能,因此您需要导出DOCKER_CLI_EXPERIMENTAL=enabled以在命令行中查看它。(您也可以修改~/.docker/config.json为有一个"experimental": "enabled"条目。)


推荐阅读