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

qemu 跨架构

跨架构:在不同架构机器上运行其他架构容器
使用qemu静态文件启动目标架构dockers。
注意:目标架构是哪个,就下载哪个文件
下载:https://github.com/multiarch/qemu-user-static/releases/tag/v7.2.0-1
https://blog.csdn.net/m0_53195006/article/details/129890780
https://blog.csdn.net/happyblreay/article/details/139743957
x86_64平台通过qemu-user-static 运行arm64的docker镜像:
1、下载目标架构的qemu
下载路径:link
https://github.com/multiarch/qemu-user-static/releases

wget https://github.com/multiarch/qemu-user-static/releases/download/v7.2.0-1/qemu-aarch64-static.tar.gz
#下载后需要解压
tar -xzf xxx.tar.gz

2、初始化binfmt

#初始化和重置binfmt
docker run --rm --privileged multiarch/qemu-user-static --reset 
#设置binfmt(可能会失败,原因未知,解决方式是手动mount qemu-aarch64-static到容器;)
docker run --rm --privileged multiarch/qemu-user-static -p yes

qemu-user-static结合binfmt_misc来实现arm架构的指令模拟(文末有详细介绍)
可以通过检查 /proc/sys/fs/binfmt_misc 下的内容来确认是否成功启用。

root@testhost1:/root>ls -al /proc/sys/fs/binfmt_misc
total 0
drwxr-xr-x 2 root root 0 May 21 15:11 .
dr-xr-xr-x 1 root root 0 May 21 23:11 ..
-rw-r--r-- 1 root root 0 Jun 17 14:58 qemu-aarch64

在安装并配置好 qemu-user-static 与 binfmt_misc 后,你就可以直接使用 Docker 运行 ARM64 的镜像了。这时,Docker 与 QEMU 联动,能够在你的 x86_64 机器上模拟 ARM64 架构。

3、拉取arm版本的镜像

docker pull arm64v8/ubuntu:20.04

4、运行arm容器
需要把qemu-aarch64-static映射到目标容器里
需要指定目标容器的platform

docker run -it --rm --platform linux/arm64 -v $(pwd)/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/ubuntu:20.04  uname -m
#ok
docker run --cpus 48 --shm-size 32G --gpus all --memory 500gb --privileged=true -v /nfs2:/nfs2 -p 8065:8888 -it --platform linux/arm64 -v $(pwd)/qemu-aarch64-static:/usr/bin/qemu-aarch64-static --name czc_arch_pytest python:3.10.14-bookworm /bin/bashdocker run --cpus 48 --shm-size 32G --gpus all --memory 500gb -it  \--privileged=true -v /nfs2:/nfs2 -p 8065:8888  \--platform linux/arm64 -v $(pwd)/qemu-aarch64-static:/usr/bin/qemu-aarch64-static \--name czc_arch_pytest python:3.10.14-bookworm /bin/bash

问题:网络一直限速,不知道是不是容器问题,更新下
apt update && apt upgrade


http://www.mrgr.cn/news/13401.html

相关文章:

  • js导出方式及引入方式
  • 深圳保障房、商品房、小产权房子类型对比
  • 【OpenCV教程】图片隐写方法的种类及其python实现
  • 【Linux】POSIX版本 信号量
  • 【系统架构设计师-2017年】综合知识-答案及详解
  • 用powermock编写单元测试
  • diskgenuis打开vmdk文件提示读扇区错误
  • 关机软件项目规划
  • SQL统计行数的语句
  • mount
  • Protobuf使用
  • 【PyQt6 应用程序】半自动多视频解说混剪综合版
  • STM32的TIM1之PWM互补输出、死区时间和刹车配置
  • GlobalUsing、JSON Schema、NuGet使用方法
  • 超实用的8个无版权、免费、高清图片素材网站整理
  • 【Leetcode 2190 】 数组中紧跟 key 之后出现最频繁的数字 —— 哈希表
  • Java | Leetcode Java题解之第377题组合总和IV
  • mysql 不同版本安装不同端口
  • git学习教程--分支操作+远程仓库相关过程详述
  • 二十三设计模式速记