离开 docker for mac,体会童年时编程的快乐!

2020-04-30 21:10:26 +08:00
 JJstyle

首先这是我的 mac 配置:

最让我难以忍受的就是:!!!

一个 vue 应用使用yarn run dev热运行起来本来需要大概一分钟,在 docker 运行起来需要 5 分钟

一个简单的 JWT 登录接口,docker 中需要 2~3 秒,而原来只需要 100ms 左右

ta 为什么这么慢?原因是挂载文件的同步问题照成的,导致磁盘读写速度慢,在 volumes 上加上cached或者delegated标志能稍微挽回点,RBN,依然让我无法忍受。

且勿劝楼主换 linux,谢谢。

其他原因:

  1. 资源消耗过多,最近旁边妹子说你电脑最近咋不响了,我说,我不用 docker 了 ....
  2. docker 并不能完全提供环境独立性,volumes 下的文件系统依然基于宿主机磁盘,所以你会发现,容器内其他目录区分大小写文件名,volumes 共享的目录却不区分 ...

目前本机开发环境管理:

  1. 使用 homebrew services 管理 apache/php56/php72/redis/es/mysql 等
  2. 使用 supervisor 管理 vue app

为了怕被 docker 党喷,我发在了 mac 节点

12420 次点击
所在节点    macOS
63 条回复
tulongtou
2020-04-30 22:32:19 +08:00
@zealic 老实说,蛮多人把 docker 当作开发环境,本地目录挂载进去的。我也不喜欢这样套娃的方式,还是 brew 安装舒服
CEBBCAT
2020-04-30 22:33:51 +08:00
Docker Desktop 不也是虚拟机吗?还是我记错了?
JJstyle
2020-04-30 22:34:49 +08:00
@qfdk 真假呀老哥?我一直认为自己已经尽最大智慧去优化了,奈何收效甚微

@xuanbg 虚拟机对于资源占用如何?我好像还未在我的 mac 上用过虚拟机🤣
JJstyle
2020-04-30 22:38:55 +08:00
@CEBBCAT 是的,但是在虚拟机里跑 docker,和 docker 自己提供虚拟机,似乎不一样
zst
2020-04-30 22:40:41 +08:00
可以去图床把图删了
insert000
2020-04-30 22:42:42 +08:00
我也是 mac,docker desktop 经常启动卡死,也不知道为什么,有很多奇怪问题,然后自己菜也找不到原因,只能重启
JJstyle
2020-04-30 22:45:58 +08:00
@zst 你说的对,我去图床上把图片改了
JJstyle
2020-04-30 22:48:01 +08:00
@insert000 这我到没遇到过
minbaby
2020-04-30 23:01:50 +08:00
https://github.com/docker/for-mac/issues/3677
mac 版本的 docker,只处于能用的阶段。。。文件读写太差了


---------------------------------------------------------------------------
$ docker run --rm -it -w /pwd alpine time dd if=/dev/zero of=speedtest bs=1024 count=100000
100000+0 records in
100000+0 records out
real 0m 0.37s
user 0m 0.03s
sys 0m 0.31s

---------------------------------------------------------------------------

$ docker run --rm -it -v "$(PWD):/pwd:delegated" -w /pwd alpine time dd if=/dev/zero of=speedtest bs=1024 count=100000
100000+0 records in
100000+0 records out
real 0m 31.82s
user 0m 0.34s
sys 0m 3.04s

---------------------------------------------------------------------------

$ docker run --rm -it -v "$(PWD):/pwd:cached" -w /pwd alpine time dd if=/dev/zero of=speedtest bs=1024 count=100000
100000+0 records in
100000+0 records out
real 0m 34.16s
user 0m 0.21s
sys 0m 3.78s

---------------------------------------------------------------------------

https://github.com/docker/for-mac/issues/3677#issuecomment-604840556

8sec on a RaspberryPi
vs
50sec on a Macbook Pro

Dump your macbooks and start carrying a RPi.
xuzhzzz
2020-04-30 23:18:38 +08:00
你公司没有测试服务器? 我手上大大小小十台左右。
dodo2012
2020-04-30 23:33:46 +08:00
我现在 docker 就是用来跨平台打包用的。。
qoras
2020-04-30 23:39:22 +08:00
docker 在 mac 上好像很多 bug, 之前试着玩了下, 改了默认内存大小都各种问题
JJstyle
2020-05-01 00:25:27 +08:00
@minbaby 确实是磁盘 IO 问题太大了!
@xuzhzzz 这个帖子跟测试武器有什么关系
@qoras 主要是慢,难以忍受
kljsandjb
2020-05-01 00:55:56 +08:00
mac docker 本质还是虚拟机…
qfdk
2020-05-01 02:47:44 +08:00
docker 我本地跑数据库测试还是可以的的 你要是运行开发环境这样的 docker 不是干这个用的. 找到适合的方法就行最好别乱挂载硬盘过去。免得意外了。别问我怎么知道的...
garlics
2020-05-01 08:02:44 +08:00
window docker 也很慢
uTOmOuk3L6sb4MSI
2020-05-01 08:31:20 +08:00
虚拟机占用太大,mac docker 挂载太慢,都有缺点。

openwrt 编译,虚拟机就能占 40 个 G 以上; docker 挂载磁盘编译速度上不去
creedowl
2020-05-01 08:33:55 +08:00
挂载目录的 io 太差了,不挂载的倒还好
JackyCDK
2020-05-01 11:27:01 +08:00
mac 上 docker 用不了 host 模式是真的难受...不过单纯开发还是可以的,问题是 yarn run dev 这种操作一般不都是直接跑本机的吗...
JJstyle
2020-05-01 11:33:54 +08:00
@JackyCDK 难道是我有强迫症吗,我是要么都用 docker 要么都不用

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

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

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

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

© 2021 V2EX