x86机器上运行arm64 docker
Posted xiang_freedom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了x86机器上运行arm64 docker相关的知识,希望对你有一定的参考价值。
Docker Hub 上可以找到各种非 x86_64 平台的镜像,但是在x86上直接运行会报错:
panic: standard_init_linux.go:175: exec user process caused “exec format error” [recovered]
在 x86_64 平台上缺少运行 arm32v7 的 Python 解释器所需要的“环境依赖”,值得庆幸的是在 Linux 上我们可以用 QEMU 来做到跨平台运行,QEMU 的 User-mode emulation 对于容器技术来说是最适合的模式。
https://juejin.im/post/5af86fb15188251b8015c102
步骤
- 在 https://github.com/multiarch/qemu-user-static/releases 下载qemu-xxx-static文件,注意要根据自己平台选择,如arm64是qemu-aarch64-static,arm32是qemu-arm-static,选错文件后面的步骤会失败。
- 拷贝文件
sudo cp qemu-aarch64-static /usr/bin/ chmod +x /usr/bin/qemu-aarch64-static
- 运行命令
这个提示可以忽略:docker run --rm --privileged multiarch/qemu-user-static:register
Setting /usr/bin/qemu-alpha-static as binfmt interpreter for alpha
sh: write error: Invalid argument - 运行docker
docker run -it -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/ubuntu
以上是关于x86机器上运行arm64 docker的主要内容,如果未能解决你的问题,请参考以下文章
使用buildx在x86机器上面编译arm64架构的Docker镜像
qemu-user-static, 在x86机器上编译arm架构docker
ARM64架构下,OpenJDK的官方Docker镜像为何没有8版本