WSL 3.0.1发布一个多月,它带来的变化已经落到日常操作里。最受关注的是新增的wslc命令:在PowerShell或CMD里就能拉取镜像、运行容器、映射端口,甚至从Containerfile构建镜像。
有意思的是,微软过去在WSL容器教程里推荐的是Docker Desktop,如今同一张Microsoft Learn页面上,教的内容换成了wslc。按官方指引在一台Ryzen 5 7600X加RTX 4070 Ti Super的机器上配置,从开始更新到第一个容器跑起来,用时不到一分钟。
安装就是一条命令
整个流程从PowerShell开始,也在PowerShell结束。先用wsl --version确认版本是否已是3.0.1或更高;如果不是,执行wsl --update拉取最新版本,这一条命令就是全部安装过程。
机器上还没有WSL,或者是全新安装的Windows 11,则需要先执行wsl --install完成初始化。之后都是安装后的验证动作:运行wslc version确认新命令可用,再运行wslc run --rm hello-world拉取一个小测试镜像,从Linux容器内部打印一句问候。
在实际机器上,按下回车后不到10秒,问候语就打印出来了,这还包括镜像下载的时间。全程没有被要求登录、重启电脑或接受许可协议。
RTX 4070 Ti Super在容器里照常工作
日常工作中大量使用llama.cpp跑本地大模型,而llama.cpp提供官方CUDA容器镜像。问题在于,容器里的推理服务只有能访问GPU才值得跑,否则推理会回落到CPU,在7600X上,原本快速的模型响应会变成漫长的等待。
WSL多年来一直通过Windows已有的驱动把Nvidia GPU交给Linux使用,不需要额外寻找Linux驱动。用过Docker的人也知道怎么把GPU指给容器,因为wslc接受同样的--gpus all参数。用Nvidia的小型CUDA基础镜像验证:
- wslc run --rm --gpus all nvidia/cuda:12.9.1-base-ubuntu24.04 nvidia-smi
结果确认容器识别到了RTX 4070 Ti Super、16GB显存和驱动版本617.14,与Windows 11报告的版本一致。在普通Linux机器上,这需要安装Nvidia Container Toolkit并配置Docker使用它,而这里什么都没装。
接下来验证性能。把llama.cpp官方CUDA镜像指向Windows上使用的Gemma 4 E4B模型文件,直接从模型文件夹挂载。两次运行都使用相同的Q4_K_M量化、128K上下文下完整GPU卸载、相同提示词和256个token的回复。原生llama.cpp两次运行生成速度在128到132 token/秒之间,容器两次都是124 token/秒。这个差距基本感知不到。
wslc不替代Docker Desktop,也不必替代
现在不适合讨论wslc是否比Docker Desktop更好,因为compose明显还缺席。wslc相对较新,没有内置compose运行时,此时做这种比较并不公平。
微软已经承认compose是wslc呼声最高的功能,并表示团队下一步就做这件事,目标是让现有compose文件无需修改即可运行。除此之外,Docker Desktop还有几项优势:它可以切换到Windows容器,而wslc只运行Linux容器;对个人用户免费,付费计划只对较大规模的组织有要求。
对于单个容器、GPU负载和快速测试,wslc提供了一条秒级启动Linux容器的路径。如果不依赖compose,两者选哪个都不会错。需要今天就用compose又想跳过Docker Desktop的话,Podman Desktop和Rancher Desktop是另外两个免费开源的选择,可以在WSL之上处理compose文件。
热门跟贴