在 macOS 上直接跑 Docker 的综合体验是不是还不如在跑在 VirtualBox 的虚拟机中? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
dioxide
V2EX    程序员

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

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

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

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

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

    22 条回复    2022-03-21 13:33:51 +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
    6IbA2bj5ip3tK49j
        13
    6IbA2bj5ip3tK49j  
       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 其他服务
    GG668v26Fd55CP5W
        19
    GG668v26Fd55CP5W  
       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 环境
    funbox
        22
    funbox  
       2022-03-21 13:33:51 +08:00
    是真的 延迟不是一点点 难受
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2738 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 11:38 PVG 19:38 LAX 04:38 JFK 07:38
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86