V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
matenshi
V2EX  ›  Docker

关于 docker hub 上不同架构的镜像的疑问

  •  
  •   matenshi · 2021-10-25 17:21:55 +08:00 · 1437 次点击
    这是一个创建于 885 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近要把应用打包到一个 arm 架构的服务器上运行,但是手头的电脑都是 x86_64 的。

    上网查了一下,可以根据摘要下载镜像,方式是 docker pull name:tag@sha256:digest。想着直接把 arm 的镜像拉下来,应用扔进去,打包一下最后直接扔到服务器上就行了。

    在我根据摘要把镜像下载之后,发现 tag 变成了空的,所以我顺手改了一下,又尝试运行了一遍,竟然可以运行。

    镜像是 tomcat ,按理说用的 jdk 应该也是 arm 的,应该是不能跑的吧。这是为什么呢?

    谢谢!

    第 1 条附言  ·  2021-10-25 18:01:00 +08:00
    REPOSITORY TAG DIGEST IMAGE ID
    arm64v8/tomcat 9.0.54-jre8-openjdk none 2a4d541aa065
    tomcat none sha256:eacda77cc58a597806a93f5cb23e8c48d62b8b874623b05e69e3bfcfe646d41a 2a4d541aa065
    4 条回复    2021-10-25 23:58:11 +08:00
    matenshi
        1
    matenshi  
    OP
       2021-10-25 18:00:05 +08:00
    补充一个镜像的信息
    | REPOSITORY    | TAG  | DIGEST | IMAGE ID  |
    | ---- | ---- | ---- | ---- |
    | arm64v8/tomcat | 9.0.54-jre8-openjdk | none | 2a4d541aa065 |
    | tomcat | none | sha256:eacda77cc58a597806a93f5cb23e8c48d62b8b874623b05e69e3bfcfe646d41a 2a4d541aa065 |

    看了看启动日志,有条是:
    25-Oct-2021 08:29:32.631 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: aarch64

    搜了搜,这个 arm64 和 aarch64 好像是一回事
    Zhuzhuchenyan
        2
    Zhuzhuchenyan  
       2021-10-25 20:30:38 +08:00   ❤️ 1
    我理解你的问题是,为什么 x86 的 docker 可以直接运行 arm64 的 docker image ?

    以 Docker Desktop 为例子,安装时会自动安装 qemu 依赖,不同架构的镜像靠的是 qemu 模拟,可以参考以下回答
    https://stackoverflow.com/questions/66350893/why-macosx86-can-run-docker-arm-container-arm64v8-alpine/66435150#66435150

    可以通过 docker manifest 来检查一个镜像的架构,比如
    docker manifest inspect --verbose arm64v8/alpine

    "platform": {
    "architecture": "arm64",
    "os": "linux",
    "variant": "v8"
    }
    ampedee
        3
    ampedee  
       2021-10-25 21:04:55 +08:00 via iPhone   ❤️ 1
    楼上说的对,如果你用的是 docker 客户端,自带虚拟机,两种架构的镜像都能运行
    matenshi
        4
    matenshi  
    OP
       2021-10-25 23:58:11 +08:00
    @Zhuzhuchenyan 谢谢解答,非常感谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3614 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:50 · PVG 08:50 · LAX 17:50 · JFK 20:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.