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

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

  •  
  •   v2byy · 2021-08-13 14:46:07 +08:00 · 9960 次点击
    这是一个创建于 1190 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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