其实这里只有两个大选择:WSL 1和VM。

WSL 1用的是Windows内核模拟的各种系统介面。虽然可以运行大部分Linux应用,但还是有不少依赖于内核的应用是无法正常运行的——例如Docker。另外WSL 1和Windows共用文件系统、网路,有些时候会比较头疼。

WSL 2/Docker本质上都是Hyper-V。WSL 2是一个轻量级的Hyper-V VM;Docker for Windows如果要跑Linux镜像,会安装运行一台运行Linux的Hyper-V虚拟机,用Hyper-V的管理工具是可以看到的。

所以除非你就运行某几个特定的软体并且在WSL 1上没有问题选择了用WSL 1,否则WSL 2、Docker、VM的选择说白了就是你选择用什么VM软体:

  • 懒得对VM进行管理的,默认设置就OK的, WSL2,轻量启动快,安装方便,和Windows结合紧密;
  • 本来就用Hyper-V,又需要用Docker,还懒得自己装一个Linux并且配置Docker运行环境,Docker;
  • 不嫌安装vm软体、管理vm的虚拟硬体/网路、在vm上安装一个Linux并且配置环境麻烦,那就用你最喜欢的vm软体,装一个Linux VM,这是最灵活的。毕竟Hyper-V会和很多VM软体/安卓模拟器冲突,另外也可以访问USB设备,大部分VM软体的图形界面性能比Hyper-V好。

PS:技术的东西真的是少盯紧一点就落伍……win版的Docker Desktop从18.02开始,使用Windows容器模式,打开体验功能版本,可以直接使用内置的Linux内核跑Linux容器而无需在Hyper-V里面额外安装运行一台Linux VM。

具体官方教程见:

Windows and Linux Containers on Windows 10?

docs.microsoft.com图标

效果截图:

以下打脸内容保留,以作警醒。脸好疼……


挂个人,睁眼说瞎话也不怕打脸,真当我找不到第二台电脑么?

你是怎么测试的?如果切换到Windows容器模式,关闭这个VM,你运行个Linux容器给我看?


根据多年实际使用经验,前前后后用过 Virtualbox 和 VMware,都还不错,部分外设可能有兼容性问题,满足日常使用,甚至各种开发都问题不大。

就成熟度来看,建议用 Virtualbox 或 VMware,WSL 和 Docker 在 Windows 下的原生支持都不久。WSL 不太熟,Docker 的话只能在某些硬体和某些版本的 Windows 下才原生支持,限制比较多。

我现在也是在 Vmware 下装 Ubuntu,在里头再用 Docker。


开个fast ring然后用wsl2吧,同时满足你对wsl、docker、vm的需求。


有人说要打我脸,来吧

@木头龙


看完了所有的回答,我选择在Linux下虚拟windows,官方都有镜像下载,没有任何盗版风险,随时可用。

https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/


推荐阅读:
相关文章