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

求 mac docker 替代

  •  
  •   QlanQ · 2021-12-30 10:29:01 +08:00 · 7767 次点击
    这是一个创建于 820 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Mac 上使用 docker 真的是太占用资源了,虽然可以限制 虚拟机的资源,但是 docker desktop 占用的内存越来越多 使用 minikube 也有很多限制

    所以想干脆 自己弄个虚拟机然后在虚拟机里面安装 docker

    目前都是 qemu 的虚拟机

    需要下载 xcode 才能编译,现在正在下载中 https://github.com/gyf304/vmcli

    这个有点 bug ,而且 不能在 image 里面安装 docker https://github.com/containers/krunvm

    求 一个 轻量的虚拟机

    35 条回复    2023-01-26 22:17:17 +08:00
    QlanQ
        1
    QlanQ  
    OP
       2021-12-30 10:40:58 +08:00
    各位都是怎么在本地 安装 数据库 、 消息队列、redis 的?
    ShadowPower
        2
    ShadowPower  
       2021-12-30 10:42:05 +08:00
    没有,都是基于 Hypervisor.Framework 的
    在这之上还有 xhyve 这样的框架
    性能一般都非常糟糕
    整个 macOS 平台就没有高性能的虚拟化方案
    QlanQ
        3
    QlanQ  
    OP
       2021-12-30 10:46:43 +08:00
    新版本的系统中有 Virtualization.framework ,docker 中有个实验的特性
    kindjeff
        4
    kindjeff  
       2021-12-30 10:50:06 +08:00
    看到楼主这贴我突然想到吃灰的服务器可以用来干嘛了
    seanzxx
        5
    seanzxx  
       2021-12-30 11:10:47 +08:00   ❤️ 2
    我使用 colima ,是基于 lima (Linux Machine on Mac) 二次开发
    lima 是基于 qemu 开发的,最新版已经能 使用 hypervisor.framework 加速了。
    端口映射,文件系统共享之类的功能都有

    https://github.com/abiosoft/colima
    https://github.com/lima-vm/lima
    sunjiayao
        6
    sunjiayao  
       2021-12-30 11:14:48 +08:00
    马上 2022 年了,我还手搓万物是不是太落伍了。。。
    libook
        7
    libook  
       2021-12-30 11:18:42 +08:00   ❤️ 1
    Docker Desktop 的 Windows 和 Mac 端巨难用,Bug 还多,而且各种商业化私货,所以我装了个 VirtualBox ,在虚拟机里装个精简的 Linux 跑 Docker daemon ,然后用 DOCKER_HOST 环境变量无缝调用。

    你可以去看看 docker-machine 方案,里面用了个精简的镜像。
    guisheng
        8
    guisheng  
       2021-12-30 11:19:57 +08:00 via iPhone
    VM 初始化一个虚机 然后存储在 iCloud 中 配套里面齐全只需要安装一个 VM 启动即可。
    TOUJOURSER
        9
    TOUJOURSER  
       2021-12-30 11:25:35 +08:00
    https://multipass.run/ 试试这个?
    tulongtou
        10
    tulongtou  
       2021-12-30 11:39:22 +08:00 via iPhone
    Mac 的 docker 本来就是在虚拟机里跑的,你自己收到安装虚拟机有什么优势吗?
    yuancoder
        11
    yuancoder  
       2021-12-30 12:12:15 +08:00
    virtualbox
    Maboroshii
        12
    Maboroshii  
       2021-12-30 12:16:17 +08:00
    virtualbox +1 装了个 ubuntu server
    infoscope
        13
    infoscope  
       2021-12-30 12:18:55 +08:00 via iPhone
    podman
    mxalbert1996
        14
    mxalbert1996  
       2021-12-30 12:20:36 +08:00 via Android
    Docker Desktop for Mac 用的 HyperKit 就是用的系统的 Hypervisor.framework ,这个都嫌重的话其他虚拟化方案也不可能更轻了。
    wellsc
        15
    wellsc  
       2021-12-30 12:22:56 +08:00
    远程搞个 docker ,ssh 连上去用
    seanzxx
        16
    seanzxx  
       2021-12-30 12:26:19 +08:00
    @mxalbert1996 可能是不喜欢那个用 Electron 开发的控制台
    joesonw
        17
    joesonw  
       2021-12-30 12:30:03 +08:00 via iPhone
    可以用 PD 起一个 Debian ,把 mac 的 docker host 指向 debian 的 docker engine
    crysislinux
        18
    crysislinux  
       2021-12-30 12:49:46 +08:00 via Android
    所以我在买了 m1 的 mac 后换了个 x86 的软路由方便跑 docker 。
    rophie123
        19
    rophie123  
       2021-12-30 12:55:51 +08:00
    各位都是怎么在本地 安装 数据库 、 消息队列、redis 的?

    我都是本机 brew install
    Yadomin
        20
    Yadomin  
       2021-12-30 13:00:02 +08:00
    richarddingcn
        21
    richarddingcn  
       2021-12-30 13:00:23 +08:00
    楼上 +1 本地 brew install 太舒服了
    miao1007
        22
    miao1007  
       2021-12-30 13:45:10 +08:00 via iPhone
    vagrant 里启动 virtualbox
    pavelpiero
        23
    pavelpiero  
       2021-12-30 17:31:21 +08:00
    开发环境 当真连个中间件都没有吗 全要 localhost 开发环境有个一台 2c4g 的虚拟机也足够把这些东西全装下拿来开发了吧
    zzw1998
        24
    zzw1998  
       2021-12-30 17:34:12 +08:00
    我在另一台电脑上装了个 Ubuntu 专门跑 docker 开发环境
    EvilCult
        25
    EvilCult  
       2021-12-30 22:14:35 +08:00 via iPhone
    所以我买了个树莓派………………
    顺带 ipad 也能用
    beginor
        26
    beginor  
       2021-12-30 23:55:26 +08:00 via Android
    买个云轻量服务器?一年就几十块钱
    fwindcore
        27
    fwindcore  
       2021-12-31 06:55:22 +08:00 via iPhone
    没点进来还以为说的是 dock ,我确实不喜欢那个 dock ,放哪都不合适。
    linshenqi
        28
    linshenqi  
       2021-12-31 14:55:28 +08:00
    资源占用不知道,耗电是真的。。
    notgoda
        29
    notgoda  
       2022-01-10 21:28:47 +08:00 via iPhone
    @joesonw
    @libook 两位 V 友 请问你们说的这个方法 docker host 与直接在 PD/ virtualbox VM 里直接跑 docker 有什么优势吗?
    @QlanQ 楼主,请问你最后用的什么方案了?
    @guisheng V 友, 请问你说的是把虚拟机的配置存在 icloud? 这个除了在所有设备上同步配置外还有什么其他用途?
    QlanQ
        30
    QlanQ  
    OP
       2022-01-10 23:44:55 +08:00   ❤️ 1
    @notgoda 最后用了 vmcli ,运行了一个 ubuntu ,然后在 vm 里面运行的 docker ,主要用的是 minikube
    joesonw
        31
    joesonw  
       2022-01-11 00:23:01 +08:00 via iPhone
    @notgoda docker cli 其实是一个客户端,通过 docker host 指定的连接和 docker server 通信。这样可以直接在 mac 命令行里执行 docker 命令。
    notgoda
        32
    notgoda  
       2022-01-11 02:50:15 +08:00 via iPhone
    @joesonw 谢谢。那 doCker 容器的目录映射还是在 PD 里的 Debian ? PD 里的 Debian 仍是宿主机? 这样等于说 mac docker cli 需要穿过 pd >Debian >docker server. 这是怎么联通的呢?有没有参考的教程学习一下。谢谢
    libook
        33
    libook  
       2022-01-11 10:29:15 +08:00
    @notgoda #29 我说的就是在虚拟机里跑 Docker 呀,Docker 需要跑在 Linux 上,Linux 需要跑在虚拟机里,跟你说的是一样的吧。

    容器跟虚拟机的概念不一样,虚拟机相当于虚拟出来了一台计算机,跟宿主机是隔离的,各自管理各自占有的资源;容器相当于是在一台宿主机上划分出来一块资源加以保护,实际上还是宿主机来处理和调度资源。比如某容器里的文件,实际上就是存在宿主机的某个目录下面,某容器里的对外开放的网络端口实际上也是在宿主机上开的端口。相关可以去搜一下容器的原理,有很多文章讲得浅显易懂。

    计算机 A 上跑虚拟机 B ,虚拟机 B 里跑容器 C ,你可以理解相当于有两台计算机 A 和 B ,B 上跑了 Linux 操作系统+Docker 服务,A 和 B 处于同一个网络中,你可以使用 IP 地址从 A 直接访问到 B 上的容器服务 API ,以及容器内应用程序的网络 API 。

    如果需要 A 和 B 之间共享文件,就跟同一网络内两台计算机共享文件一样,基本都是走网络文件传输的协议( FTP 、SFTP 、NFS 、SMB 、SSHFS……),只不过有些虚拟机提供了便捷操作,可以自动地帮你搭建共享。
    QlanQ
        34
    QlanQ  
    OP
       2022-01-11 10:59:28 +08:00
    mac 上用虚拟机可以解决 docker for mac 的内存占用问题,但是 vm 创建的时候会限制 cpu ,但 docker for mac 本来就是虚拟机,cpu 原本就有限制
    我用 vmcli 创建之后,出现 所有大核都围观的情况,我以为是我设置了 4 核心,刚好 4 个小核分配给了虚拟机,后面我设置了 6 核,还是一样的情况。。。
    Mac 跑 docker 就是痛苦
    istomyang
        35
    istomyang  
       2023-01-26 22:17:17 +08:00 via Android
    multipass 应该叫这个。PS:我感觉 docker 不应该用于开发环境,先解耦外部依赖,再然后手搓万物。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2866 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:37 · PVG 19:37 · LAX 04:37 · JFK 07:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.