感觉 M1 Mac 的 Docker 问题有点大

2021-11-24 07:14:05 +08:00
 dingwen07

最近尝试 Docker ,试着构建官方教程里的一个 Node.js 的项目,构建错误之后去搜索,确实有人是 M1 遇到了同样的问题,但是看着 GitHub Issue 里的解决方案似乎都不行,几个月了。最终是加上 --platform linux/amd64 强制用 x86 才构建成功。

之后构建自己写的 Dockerfile ,因为需要在 x86 平台运行直接选的就是 amd64 ,但 cargo install 还是失败了。

其实主要就是构建镜像,拉取镜像来跑到是没遇到过什么问题。

也不知道是我自己不会用还是 M1 Mac 的问题了。

7301 次点击
所在节点    macOS
34 条回复
ampedee
2021-11-24 08:14:52 +08:00
docker 客户端本质上是开了一个 qemu 虚拟机来转换成 x86 ,所以运行效率很低。
个人感觉虚拟机有一定概率存在兼容问题,因为我在帮测试同学排查问题时,遇到过无法运行 gitlab 镜像结果发现是 qemu 报错。遇到问题时基本很难解决
tulongtou
2021-11-24 08:18:55 +08:00
docker 就不是给 Mac 用的东西,非要在 Mac 上用,肯定达不到 Linux 那么好
petercui
2021-11-24 08:40:58 +08:00
@tulongtou 并不是,在 intel 芯片的 MacBook 上同 linux 版本并没有什么明显的区别,还是因为 arm 版本的 docker 有问题。
hahaFck
2021-11-24 08:44:39 +08:00
我去,看的我都想取消订单了。
6IbA2bj5ip3tK49j
2021-11-24 08:49:56 +08:00
@petercui intel mac 上的 docker 是跑在 x86 的 linux vm 上的。
问题的核心是:
1.各个镜像对 arm linux 的支持问题。
2.在 m1 跑 x86 虚拟机的问题。
putin541
2021-11-24 09:01:09 +08:00
已放弃 docker on mac ,有很多自用的 image 需要重新 build aarch64 版本的,从下到上 build 过来,如果其中一个不支持就 gg 了。。。
dejavuwind
2021-11-24 09:03:32 +08:00
虚拟机 arm ubuntu 跑 docker 呢?能绕过这个问题吗?
Mindzy
2021-11-24 09:15:42 +08:00
现在 docker 还强制需要 rosetta 2 直接劝退,直接远程到其他机器上搞了
jorneyr
2021-11-24 09:19:08 +08:00
M1 Pro 加 16G 内存要 3000 ,为了用 Mac 同时不影响开发,把这 3000 买个普通主机跑 Linux ,只买乞丐版,哈哈哈,机智吧。
tulongtou
2021-11-24 09:21:17 +08:00
docker 存在的意义不是在于自动编排、自动部署、自动扩容么,为什么现在都喜欢在 Mac 上跑 docker ,实在是不理解。
LinShiG0ng
2021-11-24 09:29:49 +08:00
感觉 M1 兼容问题好严重啊,以后我这 18 款的 mac 退役了可怎么办。。。。
ShadowPower
2021-11-24 09:39:02 +08:00
@LinShiG0ng 用 Windows 笔记本,我已经半年多没有用 macOS 了
willygeek007
2021-11-24 09:40:08 +08:00
docker 生产环境大部分只适配 x86 ,arm 的话较少。楼主估计是想在本地用 docker 跑开发环境,有其存在的合理性。建议买个云服务在 x86 的 Linux 上玩耍,少一些坑
ShadowPower
2021-11-24 09:48:31 +08:00
@LinShiG0ng M1 Mac 小毛病挺多的,不光是兼容性的问题,用来干活各种糟心……
而 Windows 笔记本反而问题少很多,相比起来要更可靠一些。
M1 MBP 的优势完全没有办法抵消它的劣势,除非是用来开会一整天。
yangzzzzzzzt1
2021-11-24 10:13:17 +08:00
同感,所以手上的 Intel Mac 退役后真不知道买什么
@ShadowPower
@LinShiG0ng
yuancoder
2021-11-24 10:36:49 +08:00
买个小主机装上 linux ,再跑 docker
lancelock
2021-11-24 10:47:07 +08:00
不如买个云服务器,在上面跑 docker 呗,现在也便宜。我是不在本机上跑 docker 的
DearMark
2021-11-24 10:52:55 +08:00
Windows 11 表示: 小兄弟,开发者生态了解一下。
felixcode
2021-11-24 10:58:18 +08:00
所以,Windows 一个劲的集成 WSL 不是没有原因的,涉及到开发环境的时候只能不断提升操作系统自身的兼容性,而不是强迫开发者另起一套架构,否则坑是填不完的。

要是远程都能解决问题的话,都买上网本就够了。
makelove
2021-11-24 11:03:20 +08:00
@DearMark Windows 还不是要虚拟机?我大 Linux 才是最原生开发者生态

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

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

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

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

© 2021 V2EX