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

求 mac docker 替代

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

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

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

    目前都是 qemu 的虚拟机

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

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

    求 一个 轻量的虚拟机

    34 条回复    2022-01-11 10:59:28 +08:00
    QlanQ
        1
    QlanQ  
    OP
       145 天前
    各位都是怎么在本地 安装 数据库 、 消息队列、redis 的?
    ShadowPower
        2
    ShadowPower  
       145 天前
    没有,都是基于 Hypervisor.Framework 的
    在这之上还有 xhyve 这样的框架
    性能一般都非常糟糕
    整个 macOS 平台就没有高性能的虚拟化方案
    QlanQ
        3
    QlanQ  
    OP
       145 天前
    新版本的系统中有 Virtualization.framework ,docker 中有个实验的特性
    kindjeff
        4
    kindjeff  
       145 天前
    看到楼主这贴我突然想到吃灰的服务器可以用来干嘛了
    seanzxx
        5
    seanzxx  
       144 天前   ❤️ 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  
       144 天前
    马上 2022 年了,我还手搓万物是不是太落伍了。。。
    libook
        7
    libook  
       144 天前   ❤️ 1
    Docker Desktop 的 Windows 和 Mac 端巨难用,Bug 还多,而且各种商业化私货,所以我装了个 VirtualBox ,在虚拟机里装个精简的 Linux 跑 Docker daemon ,然后用 DOCKER_HOST 环境变量无缝调用。

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

    我都是本机 brew install
    Yadomin
        20
    Yadomin  
       144 天前
    richarddingcn
        21
    richarddingcn  
       144 天前
    楼上 +1 本地 brew install 太舒服了
    miao1007
        22
    miao1007  
       144 天前 via iPhone
    vagrant 里启动 virtualbox
    pavelpiero
        23
    pavelpiero  
       144 天前
    开发环境 当真连个中间件都没有吗 全要 localhost 开发环境有个一台 2c4g 的虚拟机也足够把这些东西全装下拿来开发了吧
    zzw1998
        24
    zzw1998  
       144 天前
    我在另一台电脑上装了个 Ubuntu 专门跑 docker 开发环境
    EvilCult
        25
    EvilCult  
       144 天前 via iPhone
    所以我买了个树莓派………………
    顺带 ipad 也能用
    beginor
        26
    beginor  
       144 天前 via Android
    买个云轻量服务器?一年就几十块钱
    fwindcore
        27
    fwindcore  
       144 天前 via iPhone
    没点进来还以为说的是 dock ,我确实不喜欢那个 dock ,放哪都不合适。
    linshenqi
        28
    linshenqi  
       143 天前
    资源占用不知道,耗电是真的。。
    notgoda
        29
    notgoda  
       133 天前 via iPhone
    @joesonw
    @libook 两位 V 友 请问你们说的这个方法 docker host 与直接在 PD/ virtualbox VM 里直接跑 docker 有什么优势吗?
    @QlanQ 楼主,请问你最后用的什么方案了?
    @guisheng V 友, 请问你说的是把虚拟机的配置存在 icloud? 这个除了在所有设备上同步配置外还有什么其他用途?
    QlanQ
        30
    QlanQ  
    OP
       133 天前   ❤️ 1
    @notgoda 最后用了 vmcli ,运行了一个 ubuntu ,然后在 vm 里面运行的 docker ,主要用的是 minikube
    joesonw
        31
    joesonw  
       133 天前 via iPhone
    @notgoda docker cli 其实是一个客户端,通过 docker host 指定的连接和 docker server 通信。这样可以直接在 mac 命令行里执行 docker 命令。
    notgoda
        32
    notgoda  
       133 天前 via iPhone
    @joesonw 谢谢。那 doCker 容器的目录映射还是在 PD 里的 Debian ? PD 里的 Debian 仍是宿主机? 这样等于说 mac docker cli 需要穿过 pd >Debian >docker server. 这是怎么联通的呢?有没有参考的教程学习一下。谢谢
    libook
        33
    libook  
       133 天前
    @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
       132 天前
    mac 上用虚拟机可以解决 docker for mac 的内存占用问题,但是 vm 创建的时候会限制 cpu ,但 docker for mac 本来就是虚拟机,cpu 原本就有限制
    我用 vmcli 创建之后,出现 所有大核都围观的情况,我以为是我设置了 4 核心,刚好 4 个小核分配给了虚拟机,后面我设置了 6 核,还是一样的情况。。。
    Mac 跑 docker 就是痛苦
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4189 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 02:55 · PVG 10:55 · LAX 19:55 · JFK 22:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.