Docker/Nodejs/系统运维

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

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

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,牺牲部份性能解决此问题。

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

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

0 条回应