V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
isbase
V2EX  ›  问与答

如何将一个 docker 镜像的所有 cpu 架构变体移动到其他仓库

  •  
  •   isbase · 2022-11-18 10:39:17 +08:00 · 1355 次点击
    这是一个创建于 715 天前的主题,其中的信息可能已经有所发展或是发生改变。

    很多 docker 镜像,例如 node:18 默认是支持多 cpu 架构的,例如下面的写法可以在 arm64 和 amd64 的设备上运行:

    FROM node:18
    

    问题来了,我如何将 node:18 的所有变体移动到一个新的仓库,之后能这么用:

    FROM private-registry/node:18
    

    上面的写法要能同时在多种 cpu 架构的设备上运行,就和官方镜像完全一样。

    麻烦一点的解法

    # 搬运 arm64 架构变体
    docker pull node:18 --platform linux/arm64
    docker tag node:18 new-registry/node:18-arm64
    docker push new-registry/node:18-arm64
    
    # 搬运 amd64 架构变体
    
    ```shell
    docker pull node:18 --platform linux/amd64
    docker tag node:18 new-registry/node:18-amd64
    docker push new-registry/node:18-amd64
    

    用的时候 dockerfile 里得手动区分不同的 cpu 架构:

    amd64

    FROM new-registry/node:18-amd64
    

    arm64

    FROM new-registry/node:18-arm64
    
    第 1 条附言  ·  2022-11-18 13:28:29 +08:00

    目前已用 skopeo 成功解决,暂时没有发现问题

    5 条回复    2022-11-18 13:33:57 +08:00
    messense
        1
    messense  
       2022-11-18 10:49:13 +08:00
    https://github.com/containers/skopeo

    `skopeo copy --multi-arch all`
    FakNoCNName
        2
    FakNoCNName  
       2022-11-18 10:51:28 +08:00   ❤️ 1
    建一个 dockerfile:
    ```
    FROM private-registry/node:18
    ```

    用 buildx 重制推送:

    ```
    docker buildx build -f Dockerfile -t YourRegistry:Port/Repo:Tag --platform=PlatForms . --push

    ```
    mritd
        3
    mritd  
       2022-11-18 12:57:26 +08:00 via iPhone   ❤️ 1
    nerdctl 加一个 —all-platforms
    isbase
        4
    isbase  
    OP
       2022-11-18 13:32:31 +08:00
    感谢各位 @messense @FakNoCNName @mritd 问题已解决
    isbase
        5
    isbase  
    OP
       2022-11-18 13:33:57 +08:00
    不小心把 @messense 的回复隐藏了,v2ex 似乎恢复不了隐藏的回复 @Livid
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2667 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:20 · PVG 20:20 · LAX 05:20 · JFK 08:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.