【问题标题】:How does docker work with images of different architectures?docker 是如何处理不同架构的镜像的?
【发布时间】:2021-07-03 13:03:01
【问题描述】:

我正在使用 docker build 和 docker buildx 制作跨架构映像。我很好奇;当我推送到我的仓库时,标记是如何工作的?如果我有一个使用 32 位二进制文​​件的 dockerfile,我可以将图像推送到我将 64 位二进制文​​件推送到的同一标签吗?我怎么知道我的旧图像没有被覆盖?

【问题讨论】:

    标签: docker repository cross-platform cross-compiling


    【解决方案1】:

    您必须使用docker tag 命令标记您的图像:

    docker tag <id> <image_name>:<tag>

    每次为特定架构构建新映像时,标记它,然后将其推送到您的 docker hub 存储库。

    示例

    64位:

    docker tag xxxx myImage:64bit

    32 位

    docker tag yyyy myImage:32bit

    等等……

    【讨论】:

    • 这与 dockerhub 上的情况相反,如果我拉alpine:latest,那么 docker 会自动从多个图像中选择一个与我的架构相匹配的图像。在这里看到同一个标签下有多个图像:hub.docker.com/_/…
    • 你问了,我在这里引用“我想知道;当我推送到我的仓库时,标记是如何工作的?”,这就是我的答案。回到本例中的问题,您可能想通过使用docker manifest 命令查看多架构构建。为确保您在测试时没有覆盖任何内容,只需在您的图像中添加另一个标签,这样就不会完全覆盖,只需 latest,但至少您有备份
    猜你喜欢
    • 2021-05-25
    • 2022-11-09
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 2023-01-17
    • 2021-10-04
    • 1970-01-01
    • 2019-11-13
    相关资源
    最近更新 更多