在Docker中测试运行arm程序

在amd64 或 x86 平台上,无法直接运行arm程序。对于需要跨平台编译的软件来说,测试是一个问题。可以使用qemu模拟转译arm指令。

注册qemu:

1
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

测试:

1
docker run --rm --platform=linux/arm64 -t arm64v8/ubuntu uname -m

如果返回aarch64,说明测试成功了。

接下来可以直接运行一个arm平台的容器

1
2
3
docker run -itd --platform=linux/arm64 --name armubuntu -t arm64v8/ubuntu /bin/bash

docker exec -it armubuntu /bin/bash

然后就可以编译运行了