讨论 win 平台下大家使用 docker,是直接安装在 wsl2 上还是安装在 Linux 子系统上,哪个更好用呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
UNIXDP
V2EX    程序员

讨论 win 平台下大家使用 docker,是直接安装在 wsl2 上还是安装在 Linux 子系统上,哪个更好用呢?

  •  
  •   UNXDP 2023-08-04 16:29:03 +08:00 6804 次点击
    这是一个创建于 845 天前的主题,其中的信息可能已经有所发展或是发生改变。
    26 条回复    2024-04-02 09:44:33 +08:00
    guiyun
        1
    guiyun  
       2023-08-04 16:40:01 +08:00
    我是安装到 wsl2 上
    没法直接在 wsl2 上安装,需要改一些参数
    不过我电脑换成 mac 了,就不知道现在可以直接安装了不

    我顺便留一下 wsl2 直接安装启动不起 docker 的解决方法
    https://www.guiyunweb.com/archives/wsl2docker%E5%90%AF%E5%8A%A8%E4%B8%8D%E8%B5%B7%E6%9D%A5
    Alphagocc
        2
    Alphagocc  
       2023-08-04 16:49:31 +08:00   2
    wsl2==linux 子系统
    cpstar
        3
    cpstar  
       2023-08-04 16:51:41 +08:00
    似乎,如果以 linux 模式运行 docker ,实际上还是会调用 wsl 的东西搞,而且 cmd 和 wsl 的 docker 是相通的
    如果是以 win 模式运行,那会生成一个 hyperv 的 windows 虚拟机
    yinmin
        4
    yinmin  
       2023-08-04 16:52:43 +08:00 via iPhone
    开发环境直接安装 docker 用默认的;生产环境推荐 hyper-v + debian + docker
    shyrock
        5
    shyrock  
       2023-08-04 17:00:21 +08:00
    除了 wsl1&2 ,还有啥 linux 子系统?
    jayeli
        6
    jayeli  
       2023-08-04 17:10:53 +08:00
    wsl2

    先启用 systemd
    cat <<'EOF' >/etc/wsl.conf
    [boot]
    systemd=true
    EOF

    再根据 docker 官方的文档 https://docs.docker.com/engine/install/ ,找到对应的 Linux 发行版安装就可以了

    最后 systemctl enable --now docker

    如果你想使用 docker desktop ,可以看这里 https://docs.docker.com/desktop/install/windows-install/ ,使用 wsl2 作为 backend ,我用不惯后来就卸载了。
    table cellpadding="0" cellspacing="0" border="0" width="100%"> chinalichen
        7
    chinalichen  
       2023-08-04 17:11:44 +08:00   1
    wsl2 虽然可以装 docker ,但是很难用,主要是稳定性跟 linux 下的差别巨大,尤其是内存管理,经常会 OutOfMemory 。后续换了 linux 虚拟机后装 docker ,整个世界都变得好起来了。
    chinalichen
        8
    chinalichen  
       2023-08-04 17:12:54 +08:00
    @chinalichen linux 虚拟机使用的是 vmware
    ysc3839
        9
    ysc3839  
       2023-08-04 20:42:12 +08:00 via Android
    我一般用 VMware 装个 Ubuntu Server 在里面跑 Docker ,或者一些简单的测试就直接用 VMware 的 vctl
    Rennen
        10
    Rennen  
       2023-08-04 20:46:52 +08:00
    买台 VPS 更好用
    UNIXDP
        11
    UNIXDP  
    OP
       2023-08-04 21:09:54 +08:00
    @Alphagocc 我的意思实际上是 wsl2 上安装一个 docker 桌面还是直接在 linux 子系统比如 ubuntu 上安装一个 docker 引擎
    UNIXDP
        12
    UNIXDP  
    OP
       2023-08-04 21:11:36 +08:00
    @chinalichen 折腾了一个下午我也决定改用虚拟机了
    bitcapybara
        13
    bitcapybara  
       2023-08-04 21:12:34 +08:00 via iPhone
    都 wsl 了,可以直接用 podman 呀
    cpstar
      &nbs; 14
    cpstar  
       2023-08-04 21:18:24 +08:00
    缓缓的打出一个问号,问什么要套娃?难道不知道 docker for windows ?然后如果使用 linux 内核,就是 wsl 那套东西,如果使用 windows 内核就是 hyperv 的一个 win 虚拟机(包括 windows sandbox 也是 hyperv 的一个虚拟机)
    studyrun
        15
    studyrun  
       2023-08-04 21:53:39 +08:00
    VMware 虚拟机,对 hyper-v 这套一点好感都没,问题太多了,网络、端口问题,内存占用,主机被虚拟化。。。
    mohumohu
        16
    mohumohu  
       2023-08-04 22:00:55 +08:00
    用 Windows docker desktop 就是 wsl2 的啊,他是单独塞了一个 wsl2 发行版进去,而且在 cmd 下运行是 exe ,在其他 wsl2 下运行直接是 docker ,很好用的,如果你是用来构建测试的话。如果你打算是用来当服务器跑的话,还是直接 hyper-v 起一个虚拟机跑最好
    mikewang
        17
    mikewang  
       2023-08-04 22:02:37 +08:00
    WSL2 + podman
    如果习惯 docker 命令还能用 podman-docker 兼容一下
    mmdsun
        18
    mmdsun  
       2023-08-05 00:21:24 +08:00 via iPhone
    Windows 直接安装 docker desktop ,然后打开启用 WSL 2 的选项。
    ShadowPower
        19
    ShadowPower  
       2023-08-05 10:27:53 +08:00
    我在 2017 年的时候整的方案:

    装 Hyper-V 上,用 WSL 1

    .bashrc 里这样配置:

    # connent to Docker for Windows
    export DOCKER_HOST=tcp://127.0.0.1:2375

    # mount /mnt/c to /c if not already done
    if [ ! -d "/c" ] || [ ! "$(ls -A /c)" ]; then
    sudo mkdir -p /c
    sudo mount --bind /mnt/c /c
    fi

    if [ ! -d "/d" ] || [ ! "$(ls -A /d)" ]; then
    sudo mkdir -p /d
    sudo mount --bind /mnt/d /d
    fi

    # 其他磁盘分区以此类推……

    # Change from /mnt/c/... to /c/...
    if [ "$(pwd | cut -c -7)" == "/mnt/c/" ] || [ "$(pwd | cut -c -7)" == "/mnt/d/" ]; then
    cd "$(pwd | cut -c 5-)"
    fi
    newbee2000
        20
    newbee2000  
       2023-08-05 10:32:29 +08:00 via iPhone
    直接安装 Windows for docker
    piaofeifengxinzi
        21
    piaofeifengxinzi  
       2023-08-05 10:44:45 +08:00
    vscode remote 开发,直接随时随地,有电脑就能肝心爱的代码
    documentzhangx66
        22
    documentzhangx66  
       2023-08-05 13:17:38 +08:00
    docker 是 linux 上的玩意,别折腾 windows
    lujiaosama
        23
    lujiaosama  
       2023-08-05 17:34:58 +08:00
    @newbee2000 这个也是 HYPER-V, 和 WSL2 没有本质不同.
    canbingzt
        24
    canbingzt  
       2023-08-05 18:10:04 +08:00 via iPhone
    @jayeli 我启用 systemd 后,然后启动 docker ,过一会 wsl 就会自动关闭了,但是不起用 systemd 就没事
    jayeli
        25
    jayeli  
       2023-08-07 14:24:07 +08:00
    @canbingzt 没遇到过,奇怪
    Subfire
        26
    Subfire  
       2024-04-02 09:44:33 +08:00
    如果是为了在 Windows 上 使用 Linux 系统.
    有一种方式是: 在 Windows 上安装 Docker 然后在 Docker 中安装的 Linux, Linux 中一般需要安装各种工具(比如 Redis/MySQL), 这种方式是不太推荐

    官网有说明:
    Remember one point that the host networking driver only works on Linux hosts, and is not supported on Docker Desktop for Mac, Docker Desktop for Windows, or Docker EE for Windows Server
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5197 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 08:13 PVG 16:13 LAX 00:13 JFK 03:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86