JJstyle
V2EX  ›  macOS

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

  •  1
     
  •   JJstyle · Apr 30, 2020 · 13463 views
    This topic created in 2206 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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


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



    必须要来吐槽下
    594duck
        63
    594duck  
       Jul 11, 2020 via iPhone
    @zealic 这就是我一直说的 99%的企业只是把 docker 当成 ci/cd 工具包在用。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   906 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 219ms · UTC 20:30 · PVG 04:30 · LAX 13:30 · JFK 16:30
    ♥ Do have faith in what you're doing.