V 友们,请问如何在 arm 架构的 m1 Mac 上运行 amd64 架构镜像🙏

2021-09-30 14:04:37 +08:00
 programV2

通过 m1 Mac 先安装虚拟机然后再跑 docker 来运行 amd64 架构镜像是否可行??

3479 次点击
所在节点    macOS
17 条回复
zhaol
2021-09-30 14:14:50 +08:00
同 m1,跑 gitlab-ee 的镜像时,遇到同样的问题,求解
mxT52CRuqR6o5
2021-09-30 14:17:05 +08:00
不是说 m1 的 docker 有 qemu 去跑 x86/x86_64 吗(没用过不确定)
BrettD
2021-09-30 14:43:05 +08:00
QEMU 软件转译 x86 效率很低,大概是二十年前奔腾 II 的性能
daveh
2021-09-30 15:19:43 +08:00
@BrettD 没那么夸张,我拿来跑 mysql workbench 都很顺畅,基本上感觉不到慢。
BrettD
2021-09-30 15:22:26 +08:00
@daveh 我跑分测试过,大概是 400-500MHz 的水平
shiny
2021-09-30 15:25:32 +08:00
会比较慢,但是很多流行的镜像都提供了 arm64v8 架构,注意找找基本都有
clrss
2021-09-30 15:29:13 +08:00
@daveh 你确定你说的不是 Rosetta 2?
byte10
2021-09-30 16:15:55 +08:00
@BrettD M1 有虚拟接口不可能那么慢,哪怕纯计算模拟,只要上 jit 都不会慢,还是可以看看界面的。越狱后的 ipad M1 使用 UTM 跑 window (需要 jit 模式),打开那些 office 啥的 浏览器啥,看个电影啥都没问题。跑简单的项目完全不是问题。何况 macbook M1 还提供虚拟接口,性能完全不是问题。macbook 也有 utm,楼主可以看看
mmtromsb456
2021-09-30 16:38:26 +08:00
不需要自己创建虚拟机,Docker for Mac 本身创建的虚拟机(无论是否使用 Virtualization.Framework )都包含了 qemu-aarch64,所以直接 docker run --platform linux/amd64 指定运行容器使用的架构即可
programV2
2021-09-30 19:53:02 +08:00
@mmtromsb456
谢谢大佬,请问这种方式创建的 docker 镜像 保存之后可以拷贝到其他 amd64 架构的服务器上运行吗?
@mmtromsb456
mmtromsb456
2021-09-30 21:17:49 +08:00
@programV2 #10 可以的,也可以在本地 build 完后上传到仓库等等,和目前的已有镜像也是通用的,因为就是同一个东西.不过相对来说性能相对不太好,如果可以建议还是启用实验性功能 Virtualization.Framework
marknote
2021-10-01 11:58:16 +08:00
我发现比较靠谱的方式是
用 qemu 或者 UTM 运行 amd64 的 Linux
programV2
2021-10-22 14:38:23 +08:00
@mmtromsb456 谢谢大佬,你说的这个 Virtualization.Framework 我 Google 了一下教程 , 好像还挺麻烦的 , 还需要自行 build : https://cloud.tencent.com/article/1778892 现在还有什么快捷的开启方式吗?

@mmtromsb456 大佬,你是个楼上这位 v 友提及的 Virtualization.Framework 吗? 碰到了什么问题吗?
@marknote
@marknote
programV2
2021-10-22 14:38:54 +08:00
@marknote 手误: 是个》碰到
programV2
2021-10-22 14:40:35 +08:00
@marknote 手误: 是个》 尝试过
mmtromsb456
2021-10-22 16:33:38 +08:00
@programV2 Virtualization.Framework 框架是苹果内置在系统供开发者调用的框架,如果你要手动创建虚拟机来跑 docker,那得用 GitHub 上别人写的封装工具来调用。
我之前提到是因为 Docker Desktop for Mac 本身适配了这个框架,就在他设置的 experimental 里面启用他就会把 qemu 后端迁移到 VF 框架
marknote
2021-10-23 22:15:58 +08:00
有 2 中方法:
1. 直接安装 https://github.com/knazarov/homebrew-qemu-virgl
效果很完美
2.或者 UTM: https://mac.getutm.app

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/805398

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX