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

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

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

    首先这是我的 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 节点

    第 1 条附言  ·  71 天前
    虽然不能改帖子,但是我能改图片,有意思!
    第 2 条附言  ·  70 天前
    所以可以看到这是一台老机器,可能新 mac 不会有这么夸张的对比
    62 条回复    2020-05-21 23:40:13 +08:00
    NeoChen
        1
    NeoChen   71 天前 via iPhone   ❤️ 1
    请教一个问题,序列号不打码会有什么后果?
    wangkun025
        2
    wangkun025   71 天前   ❤️ 1
    换 fedora 吧,一起一起。
    JJstyle
        3
    JJstyle   71 天前
    @NeoChen 不清楚哎,会有啥后果?
    JJstyle
        4
    JJstyle   71 天前
    @wangkun025 蟹蟹,不换
    NeoChen
        5
    NeoChen   71 天前 via iPhone
    @JJstyle 我看别人打这个截图都打了码,所以好奇
    himself65
        6
    himself65   71 天前 via iPad   ❤️ 2
    JJstyle
        7
    JJstyle   71 天前
    @NeoChen
    @himself65 多谢提醒,我怎么现在无法编辑也不能 append?一个序列号,不至于被别人搞吧?购买 /维修信息无所谓,买了 4 年基本没处啥幺蛾子
    ila
        8
    ila   71 天前 via Android
    linux 的 docker 才是原生,其他的都是旁门左道
    (ー`´ー)
    miao1007
        9
    miao1007   71 天前 via iPhone
    试试 nomad 跑 raw exec
    9yu
        10
    9yu   71 天前 via Android
    @ila 是的,Docker Desktop 就是不行,必须在虚拟机上跑 docker 才舒服。
    luckyrayyy
        11
    luckyrayyy   71 天前 via iPhone
    吃惊,我的开发环境都在 docker 里面,改天试试对比测试
    9yu
        12
    9yu   71 天前 via Android
    我做了基于 Alpine Linux 的装了 Docker 和 Docker Compose 的 Vagrant 镜像,自己的开发环境在上面,主要是配合 Vagrantfile 修改 IP 和挂载目录异常方便。
    https://github.com/mayocream/alpine-box
    ghui
        13
    ghui   71 天前 via iPhone
    最近在研究在 docker 里编 chromium,有同样的问题
    jamesxu
        14
    jamesxu   71 天前 via iPhone
    都是在服务器上跑的
    Vegetable
        15
    Vegetable   71 天前
    docker 是真的费电...
    zealic
        16
    zealic   71 天前
    老实说,Docker 不是你这么用的。
    Volumes 直接挂载进 docker 的虚拟机自然慢,
    正常的开发模式应该是,本机使用正常的本地环境,nodejs,webpack,vue-cli 都使用 homebrew 安装的版本。

    Docker 仅仅在测试构建镜像、持续集成,发布版本,以及运行发布的版本时需要。
    这是应用开发部分。

    中间件部分如 ,部分轻量级的则可以使用 docker 运行。
    部分较重量级的如 ElasticSearch 则建议部署到单独的机器上。
    qfdk
        17
    qfdk   71 天前 via iPhone
    你姿势不正确吧 同样配置 docker 流畅
    Lonely
        18
    Lonely   71 天前 via iPhone
    推荐在虚拟机里用的 docker,for mac 版不好使。
    xuanbg
        19
    xuanbg   71 天前
    我原先也是用 Docker Desktop,各种难受……忍无可忍就上虚拟机了。Linux 虚拟机上面装 Docker 各种舒服
    JJstyle
        20
    JJstyle   71 天前
    @zealic 所以最根本的原因是 macOS 不是 linux kernel,我还是相信不少 linux 用户在本地环境使用 docker 的
    tulongtou
        21
    tulongtou   71 天前
    @zealic 老实说,蛮多人把 docker 当作开发环境,本地目录挂载进去的。我也不喜欢这样套娃的方式,还是 brew 安装舒服
    CEBBCAT
        22
    CEBBCAT   71 天前
    Docker Desktop 不也是虚拟机吗?还是我记错了?
    JJstyle
        23
    JJstyle   71 天前
    @qfdk 真假呀老哥?我一直认为自己已经尽最大智慧去优化了,奈何收效甚微

    @xuanbg 虚拟机对于资源占用如何?我好像还未在我的 mac 上用过虚拟机🤣
    JJstyle
        24
    JJstyle   71 天前
    @CEBBCAT 是的,但是在虚拟机里跑 docker,和 docker 自己提供虚拟机,似乎不一样
    zst
        25
    zst   71 天前 via Android
    可以去图床把图删了
    insert000
        26
    insert000   71 天前 via iPhone
    我也是 mac,docker desktop 经常启动卡死,也不知道为什么,有很多奇怪问题,然后自己菜也找不到原因,只能重启
    JJstyle
        27
    JJstyle   71 天前
    @zst 你说的对,我去图床上把图片改了
    JJstyle
        28
    JJstyle   71 天前
    @insert000 这我到没遇到过
    minbaby
        29
    minbaby   71 天前   ❤️ 1
    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
        30
    xuzhzzz   71 天前
    你公司没有测试服务器? 我手上大大小小十台左右。
    dodo2012
        31
    dodo2012   71 天前
    我现在 docker 就是用来跨平台打包用的。。
    qoras
        32
    qoras   71 天前
    docker 在 mac 上好像很多 bug, 之前试着玩了下, 改了默认内存大小都各种问题
    JJstyle
        33
    JJstyle   71 天前
    @minbaby 确实是磁盘 IO 问题太大了!
    @xuzhzzz 这个帖子跟测试武器有什么关系
    @qoras 主要是慢,难以忍受
    kljsandjb
        34
    kljsandjb   71 天前 via iPhone
    mac docker 本质还是虚拟机…
    qfdk
        35
    qfdk   71 天前 via iPhone
    docker 我本地跑数据库测试还是可以的的 你要是运行开发环境这样的 docker 不是干这个用的. 找到适合的方法就行最好别乱挂载硬盘过去。免得意外了。别问我怎么知道的...
    garlics
        36
    garlics   70 天前 via Android
    window docker 也很慢
    ODD10
        37
    ODD10   70 天前 via iPhone
    虚拟机占用太大,mac docker 挂载太慢,都有缺点。

    openwrt 编译,虚拟机就能占 40 个 G 以上; docker 挂载磁盘编译速度上不去
    creedowl
        38
    creedowl   70 天前 via Android
    挂载目录的 io 太差了,不挂载的倒还好
    JackyCDK
        39
    JackyCDK   70 天前 via Android
    mac 上 docker 用不了 host 模式是真的难受...不过单纯开发还是可以的,问题是 yarn run dev 这种操作一般不都是直接跑本机的吗...
    JJstyle
        40
    JJstyle   70 天前
    @JackyCDK 难道是我有强迫症吗,我是要么都用 docker 要么都不用
    charlie21
        41
    charlie21   70 天前
    docker, the new mac.
    dreamtrail
        42
    dreamtrail   70 天前
    我觉得 docker 就是给应用打包的,其他都不好用
    winglight2016
        43
    winglight2016   70 天前
    mac 上 docker 的确很慢,跟 host 性能无关的慢。楼上说得对,docker 仅用于快速部署测试,运行开发环境就太难了。
    v2Geeker
        44
    v2Geeker   70 天前
    更新最新版本,同时不要打开 kubenetes~ 这样就好很多啦。
    xiaolanger
        45
    xiaolanger   70 天前
    太耗资源了,我也放弃了,用了开发机远程
    MengiNo
        46
    MengiNo   70 天前 via Android
    同感,后来搞了一个 1c2g,用 vsc remote 舒服了 ...
    vanishcode
        47
    vanishcode   70 天前
    mac docker 非 docker,是虚拟机里跑 docker XD
    takashiki
        48
    takashiki   70 天前
    目前 vsc remote 或者 win10 wsl2 体验都还不错
    viruser
        49
    viruser   70 天前
    Docker 用了 Linux 的特性,在其他 OS 下不一定会好用。BSD 系应该用自己的 Jail
    xcstream
        50
    xcstream   70 天前
    docker 是给 python java 这种版本复杂的语言提供方便的,node 就不用了
    littlewing
        51
    littlewing   70 天前
    mac 上的 docker 就是装了个 linux 虚拟机,然后在虚拟机上跑 docker,能不慢吗
    hanxiV2EX
        52
    hanxiV2EX   69 天前
    自己装个 docker 虚拟机吧,推荐试试 rancheros
    mritd
        53
    mritd   69 天前 via iPhone
    折腾这么久 docker,说实话我只再运行期使用,用它来开发也不知是怎么玩的
    JackyCDK
        54
    JackyCDK   68 天前 via Android
    @JJstyle 我一般是数据库啥的扔 docker 里面,开发环境在实体机
    leohxj
        55
    leohxj   67 天前
    @9yu 意思 mac 下用 Vagrant 开虚拟机运行 docker, 比 docker for mac 更『快』?
    leohxj
        56
    leohxj   67 天前
    @zealic 那开发环境想要统一环境,用虚拟机?
    llitfkitfk
        58
    llitfkitfk   66 天前
    @llitfkitfk 群里聊天时给了一些 docker desktop 的使用建议 不再搬运到这里了
    cz5424
        59
    cz5424   66 天前
    一般开发环境( node 、python,go 之类的)建议抛弃 docker 直接用,毕竟常用而且经常重启加上销毁容器重建耗时。
    juzisang
        60
    juzisang   65 天前
    在用 vscode remote development + 腾讯云服务器,开发,体验还不错...
    我还买了个 NUC,内存加到 32,也是 ssh 到虚拟机开发...
    QlanQ
        61
    QlanQ   56 天前
    电脑配置本来就差,用 docker 一个请求要好几秒,本地开服务 只要几十毫秒,一开始用 docker 只是不想把系统弄乱,后面是在忍不了,本地安装 php redis mariadb 了,早点换吧
    bravist
        62
    bravist   50 天前
    升级了最新的版本的 docker, 简直了


    未升级 2.3.0.2 之前,基于 laradock 安装的项目还可以跑起来,升级后,慢的要死了



    必须要来吐槽下
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1010 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:12 · PVG 04:12 · LAX 13:12 · JFK 16:12
    ♥ Do have faith in what you're doing.