Docker/Esxi/JAVA/K8S-KubeSphere/linux/Mysql/Nodejs/系统运维/编程语言/银河麒麟

arm64如何在ARM平台运行x86_64架构的Docker image

daimafengzi · 11月22日 · 2023年 · 本文共415个字 · 预计阅读2分钟5567次已读

前言

ARM平台的机器(诸如树莓派、Android手机、Linux手机)运行Docker时,常会碰到目标镜像只支持x86/x86_64的问题。

例子

例如,在ARM64架构的Android手机拉取AMD64架构的Ubuntu镜像,并运行uname -a命令

sudo docker run --rm -t amd64/ubuntu uname -a

试图运行异质架构的镜像,输出画面会显示exec error
arm64如何在ARM平台运行x86_64架构的Docker image
除了重新build docker镜像外,还可以选择跑一个容器版的qemu-user-static (qus) ppc,牺牲部份性能解决此问题。

拉取aptman/qus,设定模拟x86_64架构,此項目还支持模拟x86、ppc64le、ARM等其他架构。

docker run --rm --privileged aptman/qus -s -- -p x86_64

再运行一次Ubuntu的镜像,运行成功。实测类似项目也可如此操作,例如只支持x86架构的NodeJS应用镜像。
arm64如何在ARM平台运行x86_64架构的Docker image

0 条回应
| 耗时 0.380 秒 | 查询 55 次 | 内存 4.13 MB |
本站CDN由One degree CDN提供