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

在 macOS 上直接跑 Docker 的综合体验是不是还不如在跑在 VirtualBox 的虚拟机中?

  •  
  •   dioxide · 2020-08-12 18:12:00 +08:00 · 4558 次点击
    这是一个创建于 480 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用场景: Web 开发、Java 开发

    后者即 macOS 跑个 VirtualBox 的虚拟机(CentOS),然后在里边再跑 Docker.

    请有过相关使用经验的人来说说, 从使用便捷度、IO 性能、系统稳定性等方面.

    21 条回复    2020-08-13 11:18:52 +08:00
    waruqi
        1
    waruqi  
       2020-08-12 18:17:35 +08:00 via Android   ❤️ 1
    很稳 更方便 要不是还得跑 win 我都快把 vbox 卸了
    brickxu
        2
    brickxu  
       2020-08-12 18:18:06 +08:00   ❤️ 1
    使用上没啥区别,自己用足够了。docker for mac 也许比你的 VB 方案用着更舒服。
    imnpc
        3
    imnpc  
       2020-08-12 18:26:03 +08:00   ❤️ 1
    docker 在最新的 macOS 下面 巨卡 超占 CPU
    moonrailgun
        4
    moonrailgun  
       2020-08-12 18:30:15 +08:00 via Android   ❤️ 1
    长期使用很稳定,本地 redis mysql 都挂在上面。没关过
    hlin
        5
    hlin  
       2020-08-12 18:35:49 +08:00 via iPhone   ❤️ 1
    之前用着挺好 某次重启机器后一直卡在 is starting,google 了半天也没解决 最后换了 vb
    VeryZero
        6
    VeryZero  
       2020-08-12 18:35:57 +08:00
    体验倒还好,就是费电..
    Resource
        7
    Resource  
       2020-08-12 18:43:51 +08:00   ❤️ 1
    貌似 docker desktop for mac 的磁盘 io 性能会比较差,如果不关注这个倒是区别不大,用 docker machine 跑在虚拟机中就没有这个问题
    dioxide
        8
    dioxide  
    OP
       2020-08-12 18:51:24 +08:00
    @imnpc, @Resource, 我看到的负面反馈也是主要集中在 磁盘 IO 上. 那是不是说在 VB 上跑,只要给够 VB 足够的资源,这个问题就能一定程度上绕过去?
    libook
        9
    libook  
       2020-08-12 18:52:31 +08:00   ❤️ 1
    目前开发 Web 全栈,体验上没啥区别,所以没必要套一层虚拟机。

    便捷程度取决于你怎么用,正常使用话一个是在 Mac 上开 Docker daemon,另一个是先开 VM 再在 VM 的 Linux 里开 Docker daemon,(或者两者的 Docker daemon 都做成自动启动的),这么看来好像在 Mac 上直接用 Docker 更方便。

    IO 性能方面,VM 多套了一层虚拟磁盘,猜测可能会有性能损耗,没实测过。

    系统稳定性跟这俩方案没关系把,取决于你用的啥系统,以及系统使用状况是啥样的。
    lululau
        10
    lululau  
       2020-08-12 18:54:21 +08:00 via iPhone
    web 开发 Java 开发 跟 docker 有个球关系哦
    Resource
        11
    Resource  
       2020-08-12 18:54:32 +08:00   ❤️ 1
    然后内存占用,用虚拟机+docker machine 内存占用可以大大降低,但是操作会稍微麻烦点,每次要先启动虚拟机软件,然后 docker machine 命令开启 docker 的虚拟机,不通过命令行直接在虚拟机里面启动虚拟机貌似会有目录挂载问题,我用 paralles desktop 会有这个问题,不知道 VBox 有没有
    Resource
        12
    Resource  
       2020-08-12 19:00:57 +08:00
    xgfan
        13
    xgfan  
       2020-08-12 19:54:54 +08:00
    @libook mac 的 docker 本身就是在 vm 里面,不存在多套一层虚拟磁盘。
    coolcoffee
        14
    coolcoffee  
       2020-08-12 20:37:37 +08:00
    docker for mac 本质上也是用一层轻量虚拟机(hyperkit)模拟 Linux 在跑,所以经常用着用着就发现 docker 的进程占了大部分内存。

    我现在基本上都是用的远程 Linux 跑 docker,要改东西就用 vscode remote 。经常用的环境又换回 mac 原生程序了,例如 nginx, redis 。
    wangfyyy
        15
    wangfyyy  
       2020-08-12 20:48:21 +08:00 via Android
    容器启多了,是可能卡,改下 docker 的资源分配就好
    594duck
        16
    594duck  
       2020-08-12 20:58:52 +08:00 via iPhone
    @lululau 你怎么能这么说 人家先开一个服务器,服务器里装了一个虚拟机,虚拟机里启动了 docker,docker 里开了一个 k8s,然后 k8s 里再开了 docker 然后部署了 java 。

    你看多么的优雅啊。多么的牛逼呀。
    dioxide
        17
    dioxide  
    OP
       2020-08-12 22:50:13 +08:00
    @coolcoffe, 综合考虑下来, 我也打算这么干
    zhangxu3486432
        18
    zhangxu3486432  
       2020-08-12 22:53:39 +08:00
    在 mac 中,docker 会先开一个 Linux 虚拟机,然后再跑 docker 其他服务
    falcon05
        19
    falcon05  
       2020-08-12 22:59:33 +08:00 via iPhone
    直接跑十分费电,反正我是忍受不了的,内存占用也有些问题,操作跟原生也不尽相同。尝试了两次最终放弃了
    Xusually
        20
    Xusually  
       2020-08-12 23:56:35 +08:00
    还是推荐 vbox 吧。
    毕竟 macOS 的 docker 本身就是得用虚拟机。性能问题、bug 都有。
    ruzztok
        21
    ruzztok  
       2020-08-13 11:18:52 +08:00   ❤️ 1
    最佳体验应该是 docker-cli 连接远程 linux 的 docker 环境
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2205 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:51 · PVG 19:51 · LAX 03:51 · JFK 06:51
    ♥ Do have faith in what you're doing.