1. 为什么要在Windows上折腾Docker和WSL2?
如果你和我一样,是个喜欢在Windows电脑上捣鼓各种服务的开发者,比如想自己搭个离线地图服务,那你肯定绕不开Docker。Docker这玩意儿,简单说就是个“集装箱”,能把你的应用和它需要的所有环境(比如特定的软件版本、配置文件)打包在一起。这样一来,无论你的应用跑到哪台电脑上,只要那台电脑能运行Docker,你的应用就能一模一样地跑起来,再也不用担心“在我电脑上好好的,怎么到你那就挂了”这种破事儿。
那为啥非得用WSL2呢?这得从Docker在Windows上的运行方式说起。Docker本身是基于Linux内核技术(比如cgroups、namespace)的,在Windows上直接跑,以前得靠一个叫Hyper-V的虚拟机。但Hyper-V这玩意儿,一来对系统版本有要求(比如Windows家庭版默认就没有),二来它是个“重量级”的虚拟机,启动慢、占资源。而WSL2(Windows Subsystem for Linux 2)是微软搞出来的一个“轻量级”虚拟化方案,它让你能在Windows里无缝运行一个完整的Linux内核。用WSL2来跑Docker,性能几乎接近原生Linux,资源占用也少,启动还快。更重要的是,对于我们搭建离线地图服务这种需要Linux环境的应用来说,WSL2提供了一个近乎完美的“练兵场”。所以,把Docker和WSL2集成起来,就成了在Windows上获得最佳容器开发体验的黄金组合。
2. 搞定WSL2:从零开始的避坑指南
在安装Docker Desktop之前,我们必须先把WSL2和它的Linux发行版(比如Ubuntu)给装好。这一步看似简单,但根据我帮不少朋友解决问题的经验,坑还真不少,尤其是用Windows家庭版的朋友。
2.1 系统准备与虚拟化检查
首先,你得确保你的电脑CPU支持虚拟化技术(Intel VT-x或AMD-V),并且已经在BIOS/UEFI里把它打开了。这个一般不用太担心,现在的主流电脑都支持。你可以打开任务管理器,切换到“性能”标签页,看看CPU那里有没有“虚拟化:已启用”的字样。如果没有,就得重启电脑进BIOS设置里找找看了,通常是在“Advanced”或“Security”菜单里,找到“Virtualization Technology”或类似选项,把它设为“Enabled”。
接下来是启用Windows功能。以管理员身份打开PowerShell(在开始菜单右键点击PowerShell,选择“以管理员身份运行”),然后输入下面这条命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
这条命令会启用“适用于Linux的Windows子系统”这个功能。执行完后先别重启,我们接着启用“虚拟机平台”功能,这也是WSL2必需的:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
现在,你可以重启电脑了。重启后,WSL2的基础环境就准备好了。
2.2 家庭版用户的特别任务:获取Hyper-V支持
如果你用的是Windows 11/10家庭版,你会发现系统自带的“启用或关闭Windows功能”对话框里,根本找不到“Hyper-V”这个选项。这是因为家庭版默认不包含这个功能。但别慌,WSL2其实并不直接需要完整的Hyper-V,它

828

被折叠的 条评论
为什么被折叠?



