Windows下想使用Linux环境,WSL、Docker、VM应该怎么选择?
其实这里只有两个大选择: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
效果截图: