参考: 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.测试文章来源:https://www.toymoban.com/news/detail-521052.html
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步文章来源地址https://www.toymoban.com/news/detail-521052.html
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
到了这里,关于x86 平台运行 arm 的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!