V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
升级到 Windows 11
v2byy
V2EX  ›  Windows

WSL 真的是看着很美好,用起来问题一堆啊

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

    今天想着试用下 WSL2,然后按照 docker 官方文档下载安装 desktop 版本之后,再 WSL 中 build 一个 image,无法成功,后来 docker desktop 直接 crash 了。

    算了,不折腾了,还是用虚拟机吧

    55 条回复    2021-08-20 17:00:46 +08:00
    fannas
        1
    fannas   106 天前 via iPhone
    wsl2 是不是可以直接安装 docker 啊…BTW docker 技术稍微老了点哈可以试试其他容器化技术
    lithiumii
        2
    lithiumii   106 天前 via Android   ❤️ 13
    wsl 問題肯定是有
    不過看你這描述,可能問題不是 wsl 的
    cheng6563
        3
    cheng6563   106 天前   ❤️ 1
    直接 wsl 里面装个 docker 。
    外部 windows 用 docker-toolbox 远程连接就行了。
    Caskia
        4
    Caskia   106 天前
    在 windows 编译 image,大部分的原因是 /r /r/n 的问题
    ch2
        5
    ch2   106 天前
    不要用 docker desktop,直接用 wsl2 里的 docker
    docker desktop 是它自己额外开了个 wsl2 的实例,跟你开的不同一个
    azkaban
        6
    azkaban   106 天前
    https://imgtu.com/i/fDX2W9
    一直在用,一切正常
    1156909789
        7
    1156909789   106 天前
    不是 wsl2 差,是 docker desktop 差
    v2byy
        8
    v2byy   106 天前
    @fannas 其他容器化技术是指?
    v2byy
        9
    v2byy   106 天前
    @ch2 我再 docker desktop 选择的是自己安装的 linux distro,不是默认的
    v2byy
        10
    v2byy   106 天前
    @ch2 直接 wsl2 中安装 docker 使用有什么问题么?因为我当时搜索,直接就是 docker desktop with wsl2 backend
    Chingim
        11
    Chingim   106 天前   ❤️ 1
    @fannas 展开说说为啥 docker 过时了, 其他容器化技术是啥
    ch2
        12
    ch2   106 天前
    @v2byy #10 唯一的问题的是 docker 服务不能开机自启动,解决办法是 windows 开机的时候跑个脚本把 WSL2 的 docker 服务开启。docker desktop 纯属脱裤子放屁,不需要那玩意
    cheng6563
        13
    cheng6563   106 天前
    @v2byy 主要问题就是目前 wsl2 对 systemd 支持不佳,你要么用些骚操作启动 systemd 然后安装 docker 。要么就要自己下载 docker 的 bin 文件然后自己写个 init.d 脚本启动。
    hez2010
        14
    hez2010   106 天前   ❤️ 2
    @cheng6563 用这个可以给 wsl2 添加 root namespace 和 systemd 支持: https://github.com/arkane-systems/genie
    lostberryzz
        15
    lostberryzz   106 天前
    用 Windows 会精神分裂,各种半成品解决方案实在太多了,老老实实用 Linux 或者 macOS 吧
    zwithz1998
        16
    zwithz1998   106 天前
    明天正好打算发博客,关于 WSL2 和 Docker 配置,使得 Windows 10 Docker 可以通过 WSL 2 调用 GPU 。
    配置完,我用 Docker 一直用的很舒服。
    jiemou
        17
    jiemou   106 天前
    @lostberryzz 赞同
    BeautifulSoap
        18
    BeautifulSoap   106 天前
    docker desktop 其实用得还可以,虽说小毛病时不时会出,但只装一个 docker 在 wsl 和 windows 下都能用这点还挺不错的,就忍着了
    Had
        19
    Had   106 天前
    @zwithz1998 期待!
    harwck
        20
    harwck   106 天前
    确实,所以我宁愿忍忍 Linux 桌面的各种小问题
    zxCoder
        21
    zxCoder   106 天前 via Android
    我用的 docker desktop 没问题
    coer
        22
    coer   106 天前
    @fannas 其他容器技术是指哪个?
    mmdsun
        23
    mmdsun   106 天前 via Android
    idea 最新版本,直接连接 WSL 2 调试。很方便
    locoz
        24
    locoz   106 天前 via Android
    其实吧,最好的选择是 windows 做开发、wsl 只作为本地开发环境,镜像构建之类的全都交给远程连接的 linux 服务器,这样基本就是目前体验最好、性能最高、问题最少的组合,比纯 linux 或者纯 mac 要舒服得多。
    darrh00
        25
    darrh00   106 天前
    windows 连个靠谱的终端都没有,拿 windows 开发是怎么能舒服起来的?
    v2byy
        26
    v2byy   106 天前
    @zwithz1998 什么场景要 GPU 啊?并行计算?
    zwithz1998
        27
    zwithz1998   106 天前
    @v2byy 深度学习
    gzlock
        28
    gzlock   106 天前
    这个月初主力机从 mac mini 转到 pc(win11 dev 通道预览版,是为了可以体验最新 wsl2+docker 开发环境)
    wsl2+docker 倒是没遇到什么问题
    反而是在 idea 上遇到些问题
    smallthing
        29
    smallthing   106 天前   ❤️ 3
    @darrh00 太搞笑了
    wangxn
        30
    wangxn   106 天前
    WSL2 不是虚拟机吗?里面 Linux 按我理解就是个纯粹的 Linux,和宿主机没任何关系,为啥会有问题?
    v2byy
        31
    v2byy   106 天前 via iPhone
    @wangxn 因为我用的 docker desktop,我错了
    alexkkaa
        32
    alexkkaa   105 天前 via Android
    这叫系统分裂症 不幸的是每隔一段时间我就会得这种病。
    joetse
        33
    joetse   105 天前
    hyper-v 就是一坨屎, 装个 linux 都各种阉割
    piping
        34
    piping   105 天前
    几种比较简单好用的容器技术除了 docker 以外还有 chroot, schroot, systemd-nspwan, podman
    ladypxy
        35
    ladypxy   105 天前 via iPhone
    @darrh00 你是来搞笑的么
    elevioux
        36
    elevioux   105 天前 via Android
    我是直接 apt get 安装的,一路没啥问题
    xuanbg
        37
    xuanbg   105 天前
    docker desktop 问题多得很,改用 VM 装 Linux 后,真是天下太平。
    dcoder
        38
    dcoder   105 天前
    docker desktop 一直很难用...
    MakHoCheung
        39
    MakHoCheung   105 天前
    @locoz 怎么个比 Mac 舒服多了
    Damenly1
        40
    Damenly1   105 天前   ❤️ 1
    不能说,说就是你不会用,WSL2 是世界上最好的 linux distro! [doge]
    locoz
        41
    locoz   105 天前   ❤️ 2
    @MakHoCheung #39 Windows 比 BUG OS 稳定得多,没有各种莫名其妙影响使用的 BUG 。我用 Mac 的时候经常碰到无法输入、卡死、鼠标除了窗口控制栏以外均无法点击之类的 BUG,换回 Windows 之后改用 WSL 做开发环境既能得到稳定的系统又能得到同样方便的环境搭建体验,爽飞了好吗...
    shiweiliang
        42
    shiweiliang   105 天前
    我觉得是姿势问题,一直在用 wsl2 docker, 没遇到过任何问题
    jsq2627
        43
    jsq2627   105 天前
    WSL2 目前唯一遗憾是 systemd 缺失吧
    Lemeng
        44
    Lemeng   105 天前
    DD 用不习惯
    zinete
        45
    zinete   105 天前
    好家伙。我看成了猥琐男
    fannas
        46
    fannas   105 天前 via iPhone
    @Chingim 不过时,还是工业界最流行的容器化技术。我看提问的人在想自己装,如果从头开始的话 podman 我的个人意见也是不错的选择。
    lysS
        47
    lysS   105 天前
    直接在 wsl2 里装 docker,只不过要用 service start 启动
    chronos
        48
    chronos   105 天前   ❤️ 1
    wsl2 和 vmware + archlinux 都用过,目前暂时还用着 wsl2 。
    我觉得 wsl2 比较烦的有下面几点:

    1. IP 地址不固定(可以用开机脚本解决)
    2. 没有 systemd (可以用 subsystemctl 或着 genie 在新的 namespace 中开启)
    3. 使用 subsystemctl 或 genie 后,由于 systemd 是在新的 namespace 中的,而且环境变量没有继承过来,导致无法直接使用 windows 的命令,且经常会忘了自己是在 systemd 的 namespace 中还是在外部。
    4. 会跟 proxifiler 冲突,有时候会无网络,关闭重开 proxifiler 后能正常使用网络。
    5. 不能直连 ipv6

    用虚拟机的话,IP 地址、systemd 、网络问题、ipv6 都能解决,但会少了以下几个功能

    1. 不能直接调用 windows 命令,比如在当前位置打开 windows 的资源管理器就不那么方便
    2. 开机速度比 wsl 慢
    3. 没有 \\wsl$ 路径可用 (可以安装 samba 代替)
    4. 没有 127.0.0.1 的网络自动映射,不过有固定 IP 也不是什么问题,而且 wsl 的那个也经常出问题。

    图形界面方面,wsl2 可以用微软的 wslg,另外 xserver 和 freerdp + de 的方式两种都是可以使用的。

    我在 wsl2 和虚拟机里面用 xserver 方式使用 idea 一直有个问题,系统是 archlinux,使用 vcXsrv 时输入法如果用的不是系统自带的,用 rime 的话在 idea 里面会输出自动重复某些奇怪的按键问题。切回微软拼音再使用 fcitx 就没问题了。
    zwithz1998
        49
    zwithz1998   104 天前
    @Had 完成啦,希望能够帮到你~ https://blog.zackzhou.com
    noyidoit
        50
    noyidoit   104 天前
    wsl2 用一年了,问题很多但大多可以解决,遇到的唯一没法解决的是文件系统不支持锁,导致对 svn 的支持非常差
    wsfmzq
        51
    wsfmzq   103 天前
    docker desktop wsl2 前段时间卡死重启突然全部 image 和 containers 都不见了...
    libook
        52
    libook   103 天前   ❤️ 1
    Docker Desktop 无论是 Windows 端还是 MacOS 端都有很多问题,而且商业化私货太多,折腾无果已经卸载了,用 docker-machine 方案,在虚拟机里跑一个纯 Linux 环境,然后跑满血的 Docker 。

    WSL 是类似于 chroot 的环境,没有系统初始化过程,所以跑服务不好用,微软搞这个的初衷是方便大家做应用开发的,比如 Web 应用开发,或 Linux 应用程序开发。

    我现在是在 Windows 上跑 XServer,然后在 WSL 里跑基于 X 的 GUI 程序,这样 Linux 的窗口就由 Windows 管理,用 Linux 下的 IDE 做 Web 全栈开发,体验还是不错的,特别是 Linux 和 MacOS 下的脚本可以直接用,不用搞 PowerShell 。
    jingslunt
        53
    jingslunt   103 天前
    确实一堆问题,mysql 服务端旧一堆问题,用不了
    jingslunt
        54
    jingslunt   103 天前
    @Chingim
    他说的 docker 技术老了些,是指 Dockershim 已经被社区抛弃了,特别是 k8s 默认已经不再使用 docker 而是使用 containerd
    CRI,OCI:
    https://feisky.gitbooks.io/kubernetes/content/plugins/CRI.html
    ysn2233
        55
    ysn2233   99 天前
    macos < wslg < linux
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1736 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:43 · PVG 00:43 · LAX 08:43 · JFK 11:43
    ♥ Do have faith in what you're doing.