V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dingwen07
V2EX  ›  macOS

感觉 M1 Mac 的 Docker 问题有点大

  •  
  •   dingwen07 · 57 天前 · 3305 次点击
    这是一个创建于 57 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    要是远程都能解决问题的话,都买上网本就够了。
    makelove
        20
    makelove  
       56 天前
    @DearMark Windows 还不是要虚拟机?我大 Linux 才是最原生开发者生态
    muntoya
        21
    muntoya  
       56 天前
    @yangzzzzzzzt1 #15 手上有 intel mac 做主力,m1 mac mini 娱乐和做兼容测试用。原先就感觉开发相关的兼容性至少得 3-5 年解决,等 arm linux 和 docker 都优化两三年再说吧,arm 平台的镜像也得等着慢慢发展。
    zr86
        22
    zr86  
       56 天前
    两万多 mac 都买了, 再买个 2000 左右的小主机很难吗
    luzhh
        23
    luzhh  
       56 天前
    这也是我今年选择入手低价 16 寸 intel 版本 mbp 的原因,平时也会用到 docker 这些,主要是图个搭建环境方便,现在系统也不准备更新,Catalina 养老。
    1002xin
        24
    1002xin  
       56 天前
    @ShadowPower 看了下我手上用了一年的 M1 ,再回头看看丢在家吃灰多年的 Windows 机器,竟无言以对
    TreeZero
        25
    TreeZero  
       56 天前
    @zr86 还真打算收个 18 年的 mini 玩玩
    Badlion
        26
    Badlion  
       56 天前
    在 mac 上跑 docker ,就算是 x86 ,也是姿势不正确
    dingwen07
        27
    dingwen07  
    OP
       56 天前
    @felixcode #19 采用 WSL 2 作为底层的 Docker Desktop 确实要比 Mac 上的好很多,除了兼容性更好以外,它的内存占用也是动态的,不会像 Mac 版那样一下子就把设置里分配的内存大小全部给占用掉。

    还有一个问题,官方给的 Mac 磁盘空间释放的 Docker 镜像( docker/desktop-reclaim-space )在 M1 上是跑不起来的,也就是说现在要释放掉已经删除的 Docker 容器和镜像的空间,就必须要做一个磁盘镜像重置,会丢失所有本地的容器和镜像。
    xuanbg
        28
    xuanbg  
       56 天前
    M1 上面还是暂时放弃 Docker 吧,坑太多了。
    hronro
        29
    hronro  
       56 天前
    @petercui #3 差别大了,性能差好多,特别是 IO 性能
    ohiu
        30
    ohiu  
       56 天前 via iPhone
    已经放弃 M1 转回 intel 了 看以后有没有改善吧
    aec4d
        31
    aec4d  
       56 天前
    再花几千块配一台台式机,Exsi 安装 linux 和 windows ,docker 是 CS 系统,将 docker server 运行在 linux 上面,本机连远程 docker 就可以了,export DOCKER_HOST=tcp://xxx:2375
    petercui
        32
    petercui  
       56 天前
    @hronro 问题是 macOS 上都是开发人员自己随便启动起来用用而已,性能差再多又能怎么样呢?最终跑在服务器上的是 linux 就可以了呗。

    话说不会有人真拿自己的个人电脑做服务器吧,太 low 了也。
    hronro
        33
    hronro  
       56 天前
    @petercui #32

    你开心就好。

    Linux 上导入数据花几分钟,macOS 上导入数据要一天,你觉得能接受那就什么都 OK 。
    petercui
        34
    petercui  
       55 天前
    @hronro 我当然不能接受,但我依然认为 OK ,因为我从不在自己电脑上做你所谓的这么耗时的“导入数据”操作,我会找台服务器去做。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4380 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:51 · PVG 10:51 · LAX 18:51 · JFK 21:51
    ♥ Do have faith in what you're doing.