V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
imdong
V2EX  ›  程序员

黑苹果切 Win10(H),对于面向 WSL2 + Docker 开发,各位有什么见解?

  •  
  •   imdong ·
    imdong · 2020-09-22 17:24:25 +08:00 · 5089 次点击
    这是一个创建于 1548 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前一直在用黑苹果开发,开发环境也是在 Docker 里,我主要还是 PHP + Node.js / Web 开发。

    最近为了回家与异地恋远途移动开发使用方便,买了个新本本,现在偶尔会切到 Win10 下开发。

    研究了一下 VSCode + WSL2 + Docker 做开发环境,似乎现在这一整套都已经相当完善且好使了。

    虽然目前还是在研究如何搭环境上,还没能跑通一个 Nginx + PHP + Node.js 的运行环境...

    各位大佬们有没有什么心得经验啊什么的,让俺少踩点坑?

    ========

    说一下题外话,感觉这一套组合方案下来,Windows 与 macOS 下的实际开发体验应该差距小了很多。

    配合 Windows Terminal 是真的舒服,有的一拼!

    目前环境是 WSL2 + CentOS8,还没有全部搞定,感觉应该是到了最后一点东西了。

    33 条回复    2020-09-23 17:56:45 +08:00
    onikage
        1
    onikage  
       2020-09-22 18:01:21 +08:00   ❤️ 1
    WSL2 的 ip 没法固定, 能固定就好了, 已经用这套组合实际完成了一个项目. 体验不错, 每天开机改下 host 是唯一的遗憾.
    derek80
        2
    derek80  
       2020-09-22 19:00:10 +08:00 via iPhone
    稳定性偏差,莫名出现些小 bug 很头疼
    murmur
        3
    murmur  
       2020-09-22 19:01:02 +08:00   ❤️ 1
    wsl1 挺好,wsl2 不如虚拟机
    mashirozx
        4
    mashirozx  
       2020-09-22 19:09:17 +08:00 via iPhone   ❤️ 1
    @onikage 把 IP 输出到 hosts 里就好了吧

    cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*
    imdong
        5
    imdong  
    OP
       2020-09-22 19:50:04 +08:00
    @onikage @mashirozx 看来 IP 的问题又解决了,
    codehz
        6
    codehz  
       2020-09-22 20:18:39 +08:00
    docker 都是虚拟机为啥选 win10
    hwdef
        7
    hwdef  
       2020-09-22 20:50:09 +08:00
    前几天 win10 更新刚给 wsl2 弄出来个 bug 。。感觉现在还不是很成熟。。虽然我也用 wsl2 主力开发。。

    开启 docker 的 wsl 后端 windows 和 wsl 用一个 docker,,感觉很舒服。
    THP301
        8
    THP301  
       2020-09-22 21:04:14 +08:00
    装个虚拟机就行了,专注业务
    wangkun025
        9
    wangkun025  
       2020-09-22 21:19:32 +08:00
    其实 WSL 不如想象中好用。
    hui314
        10
    hui314  
       2020-09-22 23:07:42 +08:00 via Android
    wsl2 nginx TTFB 4 秒+,想死
    Muniesa
        11
    Muniesa  
       2020-09-22 23:53:17 +08:00
    内存一路飙升,还是用回了 Linux
    THP301
        12
    THP301  
       2020-09-23 00:25:34 +08:00
    一个虚拟机就啥事都没了,不知道为啥就热衷折腾这种有点没的东西
    djs
        13
    djs  
       2020-09-23 00:41:45 +08:00 via iPhone
    并不如想象中的好……有预算我还是想上苹果
    pC0oc4EbCSsJUy4W
        14
    pC0oc4EbCSsJUy4W  
       2020-09-23 01:03:19 +08:00
    还不如直接弄个个人 sever,vpn 或者其他内网穿透配置好,用 pve 或者 unraid 这种,然后 vscode 连接就行了
    hakono
        15
    hakono  
       2020-09-23 01:10:56 +08:00 via Android
    wsl2 是真的好用,尤其给 docker 开启 wsl2 backend 后,唯一遗憾就是上面说的不能固定 ip
    wsl2 内存占用可以通过给 wsl2 设置内存占用上限轻松解决,我设了 2gb 。讲道理你用虚拟机不设内存上限也一样吃光你内存

    至于为什么不用全功能虚拟机,因为 wsl2 是真的轻量简单啊,虽然 wsl2 是虚拟机但一两秒跑起来的虚拟机而且轻量小巧性能占用不大,体验是真的不一样
    yiyi11
        16
    yiyi11  
       2020-09-23 01:33:04 +08:00 via Android
    虚拟机还是更加干净,安全,随意创建和销毁。虽然虚拟机启动较慢。(重点)但是电脑经常一开就是一整天,完全能接受一定的启动速度。
    m4d3bug
        17
    m4d3bug  
       2020-09-23 07:09:59 +08:00 via Android
    THESDZ
        18
    THESDZ  
       2020-09-23 08:23:49 +08:00
    可以考虑直接 wsl2 远程桌面
    zlowly
        19
    zlowly  
       2020-09-23 09:05:31 +08:00
    对于新版本 win10( > Build 18945),windows apps 已经可以直接用 localhost 访问 WSL2 里的网络应用,固定 IP 也不一定是必须的了。
    kuaner
        20
    kuaner  
       2020-09-23 09:14:57 +08:00
    wsl2 下 docker 的效率似乎不高,但是这套方案我用的挺顺手,暂时没啥特别大毛病
    Carlgao
        21
    Carlgao  
       2020-09-23 09:26:37 +08:00
    docker + linux container 开发也挺爽的啊
    onikage
        22
    onikage  
       2020-09-23 09:52:19 +08:00
    @mashirozx 其实我这边是 windows 端的 host 要改...
    mashirozx
        23
    mashirozx  
       2020-09-23 09:57:23 +08:00
    @onikage #22 大概也是一个 bat 脚本就可以了(狗头
    dongisking
        24
    dongisking  
       2020-09-23 10:04:49 +08:00
    用 docker on windows,映射后的磁盘运行速度极低,昨天下载预览版,发现停留在下载 0%....
    hakono
        25
    hakono  
       2020-09-23 10:16:07 +08:00 via Android
    @zlowly 你还是没理解为什么会需要固定 ip,想要固定 ip 的一般是为了局域网访问 wsl2 端口而这个端口又和宿主机冲突。(这个局域网还包括同一台电脑上的其他虚拟机的网络)
    最常见的例子就是我电脑上的另一台虚拟机想要通过 samba 服务访问 wsl2 里的文件。据我所知因为 wsl2 没有固定 ip,至今没有任何简单的办法解决这个问题。(不如说我发的关于这个问题的帖子都几个月了,至今没人能提出有效的解决办法
    MengiNo
        26
    MengiNo  
       2020-09-23 10:25:17 +08:00
    虽然 wsl2 有点小瑕疵但是也可堪大任了,个人觉得既然 LZ 选择 vscode 作为开发工具,很推荐试试 vsocde-remote 。趁活动嫖一个云服务器来,PHP 项目的话,一般情况下 1c2g 就够用了。vscode-remote 体验远超 docker-desktop (无论 Windows 的还是 macOS 的)。维护成本还低,自己只要带一个配置文件,代码可选放云上也可以放本地,如果放云上本地甚至连 git 都不要了。后端相当于是真 Linux 的 docker,前端一个 dockerd.exe 随便找台电脑下下来配个环境变量就能跑,啥都不用装也不消耗任何本机资源,而且连公司在云上的 db 的话可以走内网,调试等待时间远低于本地请求,外加还有公网 ip 随时随地都能发布出来支持前端联调。
    monlite
        27
    monlite  
       2020-09-23 12:06:40 +08:00
    wsl2 可以固定 IP,在 win10 和 wsl2 中各配置一个 IP 就可以了,自己再添加下自启就 OK 了。参考: https://github.com/microsoft/WSL/issues/4210#issuecomment-648570493
    imdong
        28
    imdong  
    OP
       2020-09-23 12:32:51 +08:00
    @codehz #6 @THP301 #8 #12 其实当你用虚拟机的时候,又会有人问你为啥不用 WSL 一样,仅仅是个人选择,萝卜白菜各有所爱。

    我选择 WSL 就是因为我想折腾,而且想积极体验新鲜事物,虚拟机也不是没体验过,但是想换个口味,而且轻量级还是挺重要的(对于本本来说)

    至于专注业务,希望不是专注于公司的业务,个人的业务能力与业务范围(广度)都是挺重要的。

    @wangkun025 新出来的东西总是会有这样那样的问题,但是总要给他机会发展,相信未来一定会做的更好。

    @hui314 之前我也遇到过总是特别慢,但是环境是啥忘记了,还不如外网的服务器响应快。

    @djs 唉,看我上个帖子,预算 4k 求推荐,本来是想 macbook 类的,后来退到黑苹果本,最后无奈,AMD Yes 真香...

    @yiyi11 其实我是属于那种不在明面上看到的,才算干净,别的我都洁癖,WSL 好在属于系统集成不用安装第三方软件,我看中了这点(国产安装包 /软件恐惧后遗症)

    @MengiNo 是有自己的服务器的,你说的这些干净也可以一试,不过干净还是本地更流畅一些吧(道理我懂可做不到)
    codehz
        29
    codehz  
       2020-09-23 13:20:40 +08:00
    @imdong #28 我的意思是 docker 在 win 和 mac 都是基于虚拟化技术做的,所以和 mac 版本应该没有根本区别。。遇到的坑也大同小异。
    photon006
        30
    photon006  
       2020-09-23 13:21:21 +08:00
    @hwdef 那天我也遇到,报错:找不到元素,英文版:element not found,苦恼好几天,大家给的解决办法是卸载 1756 更新。今天微软又推出了新的更新修复了这个问题。
    imdong
        31
    imdong  
    OP
       2020-09-23 13:39:35 +08:00
    @codehz 哈哈,误解了,主要是新买的本本 AMD 真香,没得黑苹果。

    出门需要用,在家主力机还是黑苹果台机。
    jjx
        32
    jjx  
       2020-09-23 16:20:05 +08:00
    已经很好用了

    就是 idea 的支持还需要加强

    目前不能正常的识别 wsl2 下符号链接的文件和目录

    code 倒是正常的
    zhuozimu
        33
    zhuozimu  
       2020-09-23 17:56:45 +08:00
    试过 WSL2, 折腾了好久.最后,用了 manjaro .朋友的 AMD 笔记本换 manjaro 用的也很舒服,楼主可以试试 manjaro
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3139 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:20 · PVG 21:20 · LAX 05:20 · JFK 08:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.