x86 平台运行 arm 的方法

参考: https://github.com/multiarch/qemu-user-static

核心是使用 binfmt_misc 设定运行 arm 的默认程序为 qemu-aarch64-static

1.先下载 arm64 即 aarch64 的运行文件

curl -LO https://github.com/multiarch/qemu-user-static/releases/download/v7.1.0-2/qemu-aarch64-static.tar.gz
tar -zxf qemu-aarch64-static.tar.gz -C /usr/bin && /usr/bin/qemu-aarch64-static --version

2.设置默认打开方式, 即设置 binfmt_misc 以支持 arm64 程序的运行
# --reset 会删除同名条目后重新设置

docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm --privileged multiarch/qemu-user-static:register --help

3.测试

docker run -t --rm -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static --platform=arm64 alpine uname -m

4.不用映射qemu-*-static也可以使用的方法, --persistent yes 使得binfmt保留在内存中,但重启会失效[可选]
# 使用完整镜像注册(有300M), 注意!! 低版本内核不支持 -p yes 取消即可, 但在运行docker时需指定-v qemu-*-static, 参考第3步

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes  
# 因使用了参数 -p yes , 此时运行docker可以不用指定 -v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static
docker run --rm -t arm32v6/alpine uname -m
docker run --rm -t alpine uname -m

你可能感兴趣的:(arm开发)