微软宣布,Windows Subsystem for Linux (WSL) 容器功能已结束公共预览,正式进入通用可用性(GA)阶段。用户只需运行 wsl –update 即可获取该功能。Windows 平台与开发者部门企业副总裁 Logan Iyer 确认,最新版本内置了 wslc.exe 命令行工具及 WSL 容器 API。

此前,Windows 开发者若需使用 Linux 容器,通常依赖 Docker Desktop 或在 WSL 发行版中手动配置 Docker Engine。WSL Containers 的推出,标志着微软将容器工作流直接整合进 WSL 环境,旨在简化开发流程。

核心组件:CLI 工具与原生 API

此次更新主要包含两部分核心内容:

命令行工具 wslc.exe:用于从 Windows 端构建、运行、管理和部署 Linux 容器。微软还提供了 container.exe 作为别名,其操作界面与 Docker 高度相似,例如支持 wslc run –rm -it ubuntu:latest 和 wslc image ls 等命令。

WSL 容器 API:允许原生 Windows 应用程序通过代码创建和控制 Linux 容器。该 API 封装在 Microsoft.WSL.Containers NuGet 包中,支持 C# 和 C++/WinRT,提供标准输入输出、文件挂载、网络及 GPU 访问能力。

值得注意的是,尽管 GitHub 上的正式版本号为 WSL 3.0.1,但这并非此前传闻中的“WSL 3.0”架构重构,而是一次功能迭代。

架构革新:更强的隔离性与性能

微软高级工程师 Pierre Boulay 披露,WSL Containers 采用了不同于常规 WSL 的架构。常规 WSL 通过特权服务 wslservice.exe 管理虚拟机,而 WSL Containers 则创建名为 wslcsession.exe 的子进程代表用户运行,负责容器创建、目录挂载和网络绑定。

这种设计带来了两大优势:一是会话隔离性更强,每个会话独立进程运行;二是安全性提升,会话操作权限低于系统级服务。此外,容器会话拥有独立的 VHD 文件,并通过 virtiofs 技术共享 Windows 文件夹。微软表示,virtiofs 的速度比常规 WSL 使用的 plan9 协议快约两倍。

网络模型 Consommé:解决 VPN 兼容性痛点

GA 版本引入了名为 Consommé 的新网络模型。在此模式下,Linux VM 的流量以以太网帧形式进入 virtio 队列,由用户态 Windows 进程处理 DNS、路由及端口映射。由于流量表现为常规 Windows 进程发送,其与 VPN 和防火墙的兼容性显著改善,解决了长期困扰 WSL 用户的网络连接问题。

新增功能还包括 wslc container restart、文件复制、网络驱动选项扩展、容器健康检查以及 –mount 支持。

企业级支持与生态集成

随着功能正式商用,企业级管理能力同步就位:

  • Microsoft Intune:管理员可开启或关闭 WSL Containers,并将镜像拉取限制在批准的注册表列表中。
  • Microsoft Defender for Endpoint:现有 WSL 集成已覆盖容器,可监控容器内的进程、文件和活动,并关联至 Windows 主机。

Logan Iyer 表示,这些集成确保了企业环境下的安全可控。

开发者体验:VS Code 支持与待完善功能

VS Code Dev Containers 扩展已支持将 wslc 设为容器驱动程序,Aspire 等工具也已适配。然而,部分用户反馈在切换至正式发布版后仍遇到“找不到 docker 命令”的报错,表明编辑器集成仍需一定故障排除。

针对社区呼声最高的 Compose 支持,微软确认已列入路线图。Logan Iyer 表示,目标是让 wsl compose up 无缝兼容现有的 compose.yaml 文件,以简化多容器应用的启动流程。此外,–privileged 模式预计很快进入预览阶段,以满足 kind 和 k3d 等 Kubernetes 集群工具的需求。

跨平台支持与战略意义

WSL Containers 不仅适用于 Windows 11,同样支持 Windows 10 和 Windows Server 生产环境。Logan Iyer 证实:“是的,生产环境受支持。”

从史蒂夫·鲍尔默时代视 Linux 为“癌症”,到如今将 Windows 打造为一等的 Linux 容器主机,微软的战略转变日益清晰。随着 Google 等巨头为其 AI 工具带来原生 WSL 支持,以及 Ubuntu 在 Windows 上的快速增长,WSL 已成为连接 Windows 开发者与 Linux 工具链的关键桥梁。

尽管 WSL Containers 尚未能完全替代 Docker Desktop(特别是缺乏 Compose 支持和部分高级场景),但其提供的原生 CLI 和 API 已为企业和个人开发者提供了更具吸引力的第一方选择。随着 wsl compose 等功能的落地,开发者卸载第三方容器工具的日子或许指日可待。