V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
v2byy
V2EX  ›  Windows

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

  •  
  •   v2byy · Aug 13, 2021 · 11030 views
    This topic created in 1719 days ago, the information mentioned may be changed or developed.

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

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

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