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

2020-08-12 18:12:00 +08:00
 dioxide

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

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

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

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

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

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

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

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

你看多么的优雅啊。多么的牛逼呀。
dioxide
2020-08-12 22:50:13 +08:00
@coolcoffe, 综合考虑下来, 我也打算这么干
zhangxu3486432
2020-08-12 22:53:39 +08:00
在 mac 中,docker 会先开一个 Linux 虚拟机,然后再跑 docker 其他服务
falcon05
2020-08-12 22:59:33 +08:00
直接跑十分费电,反正我是忍受不了的,内存占用也有些问题,操作跟原生也不尽相同。尝试了两次最终放弃了
Xusually
2020-08-12 23:56:35 +08:00
还是推荐 vbox 吧。
毕竟 macOS 的 docker 本身就是得用虚拟机。性能问题、bug 都有。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/697757

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX