0


在x86机器上的Docker运行arm64容器

1. 引言

工作中常用电脑主机CPU为x86架构,有时由于产品需要,我们需要编译aarch64架构的SDK或者应用程序供使用或者测试。

一种比较快捷的方式是使用aarch64的CPU构建相应操作系统,实现真机运行。但在无arm架构CPU环境下,我们可否x86配合相应软件模拟aarch64指令集,实现程序的正常运行呢?答案是可行的,下述方法将介绍一种使用qemu + 容器化部署方式,使我们可在x86机器上的Docker运行arm64容器。

2. 容器构建流程

  1. 下载qemu-aarch64-static.tar.gz
wget https://github.com/multiarch/qemu-user-static/releases/download/v5.1.0-2/qemu-aarch64-static.tar.gz
  1. 解压、移动到/usr/bin/下、修改权限
tar-zxvf qemu-aarch64-static.tar.gz
sudocp qemu-aarch64-static /usr/bin/
chmod +x /usr/bin/qemu-aarch64-static
  1. 注册qemu解释器
docker run --rm--privileged multiarch/qemu-user-static:register --reset
  1. 测试arm64容器是否可以启动
docker run -t-v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/ubuntu:20.04 uname-m# 返回
aarch64

说明可以运行arm64容器了,接下来便可将交叉编译好的aarch64应用程序移至容易内运行。

注意:由于qemu本质上是使用x86指令对arm64指令集进行仿真(虚拟机),因此实际运行性能会比真机差很多 (可能耗时差几十甚至上百倍)。

3. 参考

https://www2.jianshu.com/p/a1c90b4af5cf
https://blog.csdn.net/ccgshigao/article/details/109631585
https://github.com/multiarch/qemu-user-static

标签: docker 容器 运维

本文转载自: https://blog.csdn.net/weixin_41967328/article/details/132489636
版权归原作者 胖胖腐乳 所有, 如有侵权,请联系我们删除。

“在x86机器上的Docker运行arm64容器”的评论:

还没有评论