
如果你从事开发工作,你肯定知道在 Windows 上搭建 Linux 环境一直以来都比较繁琐,或者依赖于一些体积庞大的外部工具。不过,微软推出的WSL Containers彻底改变了这一现状。这项功能让我们能够原生管理 Linux 镜像和容器,无需再像 Docker Desktop 那样繁琐地配置,也无需支付其复杂的企业版许可费用。
这款工具并非简单的更新,而是 Windows 处理虚拟化方式的一次范式转变。通过将容器直接运行功能集成到Windows 子系统 Linux 版 (WSL)中,其目标是创建一个更加流畅的工作流程,消除不必要的层级,使开发人员能够专注于编写代码,而无需费心配置操作系统。
WSL容器究竟是什么?
简而言之,这是 WSL 的一项新功能,允许您创建和启动 Linux 容器,而无需外部守护进程。其核心是wslc.exe,这是一个设计直观的命令行界面,尤其适合熟悉 Docker 的用户,因为它们的命令非常相似。事实上,为了避免任何混淆,微软还提供了一个名为container.exe 的别名。
但这不仅仅关乎控制台。他们还发布了一个可通过 NuGet 包获取的WSL 容器 API。对于那些开发原生 Windows 应用程序(使用 C#、C++ 或 C)并希望程序内部管理 Linux 容器的开发者来说,这简直是福音。这些容器可以处理输入/输出(stdin/stdout)、网络挂载,甚至可以直接访问 GPU以使用 PyTorch 执行 AI 任务。
与 Docker Desktop 的主要区别
很多人会问,WSL 容器是否会取代 Docker Desktop?简而言之,在很多情况下,答案是肯定的。Docker 通常使用单个共享的 Linux 虚拟机来运行所有程序,而 WSL 容器则为每个容器启动独立的 Hyper-V 微型虚拟机。这意味着每个进程都有自己的内存和存储预算,从而防止容器之间相互“窥探”,提高了安全性。
另一个关键点是成本。Docker Desktop 需要向大型企业付费,而 WSL 容器则包含在 Windows 11 中,无需额外付费。但是,需要注意一个重要细节:您需要Windows 11 专业版、企业版或教育版,因为家庭版不支持 Hyper-V 隔离,而 Hyper-V 隔离是所有这些功能正常运行所必需的。
如何逐步启动并运行
如果您想开始尝试,首先要确保您的 WSL 版本为 2.9.3 或更高版本。由于它仍处于预览阶段,您需要以管理员身份打开终端并运行命令`wsl --update --pre-release` 。更新完成后,您可以通过运行`wsl --install-feature containers`来启用该功能。
要检查一切是否正常,只需输入 wslc version如果您想顺利启动您的第一个容器,请尝试使用 wslc run --rm hello-world你会看到图像自动下载并显示欢迎信息,确认系统运行正常。从这里,你可以使用如下命令: wslc 容器 ps 看看有什么生物或 wslc 图像 ls 查看本地图像。
创建您自己的图像并优化工作流程
如果你想更进一步,理想的解决方案是使用带有 WSL 扩展的Visual Studio Code 。要创建自己的镜像,你需要一个名为Containerfile 的文件(与 Dockerfile 非常相似),并参考优秀的编程书籍来构建你的应用程序。例如,如果你要构建一个 Django 应用程序,你需要定义 Python 镜像,复制依赖项,并开放 8000 端口。
编译过程很简单:你使用 wslc build -t your-app-name . 然后你用它启动它 wslc run -d -p 8000:8000 --name mi-app nombre-de-tu-app最强大的地方在于你可以将它整合到 MSBuild 或 CMake使容器创建成为项目构建过程的一部分。
性能、网络和存储
微软的改进远不止于此。他们已将virtiofs设置为默认文件系统,这显著提升了 Windows 和 Linux 之间的数据传输速度,彻底解决了恼人的挂载速度瓶颈。此外,还有一种名为consomme 的实验性网络模式,对于企业用户来说堪称福音,因为它能够更智能地路由流量,从而解决与企业 VPN 的常见冲突。
在资源管理方面,该系统会更积极地向主机释放内存。由于它们是轻量级虚拟机,因此当您停止容器时, 内存恢复速度更快 比单体式模型更高效。为了保持磁盘清洁,请不要忘记使用 wslc container prune y wslc image prune 删除不再使用的内容。
这项技术通过将容器化直接集成到 Windows 11 核心中,实现了重大飞跃,使开发人员能够摆脱第三方软件,并通过 Hyper-V 隔离和 virtiofs 系统优化性能。随着 wslc.exe 命令行界面和 VS Code 兼容性的推出,一个强大、免费且高效的环境得以建立,简化了 Linux 工作负载的运行,但要充分发挥其功能,需要使用专业版 Windows。






