WSL 2.9.9 预览版:微软继续把 wslc 做成“轻量版 Docker”

WSL 2 核心架构:Linux 内核 + 轻量 VM + Windows/WSL 集成。从 2.9.x 开始,最大的变化其实是 WSL 开始原生加入容器运行能力。

微软近期发布 WSL 2.9.9 预览版。这个版本最大的看点并不是 WSL 本身的基础能力变化,而是微软继续完善 wslc——一套运行在 WSL 环境中的容器命令行工具,并持续向 Docker 的使用习惯靠拢。微软官方 WSL 项目本身仍定位于让 Windows 直接运行 Linux 工具和应用。

2.9.9 首先改善了 wslc logs 的时间参数解析。--since--until 开始更统一地支持 epoch 秒、Go duration、日期以及带时区的 RFC3339 时间。对于自动化脚本而言,这意味着不同时间格式带来的歧义进一步减少,生产环境更推荐直接使用带时区的 RFC3339。

其次,wslc volume list --format json 的 JSON 输出更加接近 Docker CLI,字段从较少的基础信息扩展到包含 Availability、Labels、Mountpoint、Scope、Size、Status 等字段。对于按照字段名读取数据的程序影响较小,但如果 CI 脚本通过完整 JSON 快照做严格匹配,则需要重新检查测试。

另一个重要变化是容器生命周期管理。微软重构了相关状态机,重点修复 runstoprm 并发操作可能导致的卡顿问题。这类修改看似不显眼,却直接关系到自动化环境中的稳定性。

网络方面,GNS 回调处理也更加严格:Linux 侧网络失败不再被静默吞掉,而是显式暴露并触发重试。因此,如果升级后镜像网络、VPN、DNS 等组合场景出现错误,更应该理解为旧配置问题被暴露,而不是简单归因于“2.9.9 把网络搞坏了”。

从产品方向看,wslc 的意义比这几个修复更值得关注。微软正在把 WSL 与 OCI 容器运行能力进一步整合,让开发者在不安装 Docker Desktop 的情况下,也能获得相对熟悉的容器 CLI 体验。不过,目前它仍不能视为 Docker Desktop 的完整替代品,社区仍在提出 docker infocontainer cp 等兼容性需求。

阶段 核心变化 本质
WSL 1 Linux syscall → Windows syscall Linux 兼容层
WSL 2 真正 Linux Kernel + VM Linux 虚拟化
2.0~2.3 独立版本、systemd、WSLg 等 开发环境
2.4~2.6 网络、DNS、GPU、VM、文件系统持续增强 开发平台
2.7 基础设施稳定性继续增强 Linux runtime
2.9 WSLC / wslc 容器平台
未来方向 Linux + Containers + Windows 集成 Windows 开发基础设施

PS:WSLg 是用于运行 Linux GUI 应用(作为一个 Windows 窗口),支持 X11 和 Wayland。体验方面也在不停改进,已经非常成熟了,比如开始菜单、任务栏、剪切板、GPU 加速、多显示器等都已经支持。

如果你有魔法,你可以看到一个评论框~