当前位置: 首页 > news >正文

在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
sudo cp 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

http://www.lryc.cn/news/144445.html

相关文章:

  • centos7删除乱码文件
  • uni-app里使用webscoket
  • jdk17+springboot使用webservice,踩坑记录
  • 计算机网络文件拆分—视频流加载、断点续传
  • JVM 给对象分配内存空间
  • Excel·VBA二维数组组合函数、组合求和
  • 调用自实现MyGetProcAddress获得CreateFileA函数并调用创建写入文件
  • Leetcode 191.位1的个数
  • 安防监控视频平台EasyCVR视频汇聚平台调用接口出现跨域现象的问题解决方案
  • Python中的一些常用操作
  • go语言调用python脚本
  • 2.3 【MySQL】命令行和配置文件中启动选项的区别
  • 外部库/lib/maven依赖项 三者关系
  • 在线制作作息时间表
  • 他们朝我扔泥巴(scratch)
  • docker部署前端项目保姆级教程
  • 《C和指针》笔记13: static关键字总结
  • Docker harbor私有仓库部署与管理
  • 解锁Selenium的力量:不仅仅是Web测试
  • [SQLITE_ERROR] SQL error or missing database (near “=“: syntax error)【已解决】
  • 【视觉系统】笔芯内径机器视觉测量软硬件方案-康耐德智能
  • 将文件夹的名称写到Excel中
  • 关于Vue CLI项目 运行发生了 less-lorder错误的解决方案
  • 【Qt学习】02:信号和槽机制
  • 软件工程(十三) 设计模式之结构型设计模式(一)
  • Node与Express后端架构:高性能的Web应用服务
  • C++炸弹小游戏
  • 发送通知消息
  • Python报错:PermissionError: [Errno 13] Permission denied解决方案
  • 【leetcode】第六章 二叉树part01