news 2026/7/24 1:46:10

微软 WSL 容器:让 Windows 无缝调用 Linux 代码,开启开发新体验!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
微软 WSL 容器:让 Windows 无缝调用 Linux 代码,开启开发新体验!

能否在 Windows 应用中使用 Linux 代码?现在可以了

如果你能在不修改代码的情况下,将 Linux 代码用于 Windows 应用程序中,会怎么样呢?现在,你可以做到了。

Windows 运行容器难题待解

在 Windows 上运行容器从来都不是一件容易的事。虽然有支持 Windows Subsystem for Linux (WSL) 和 Hyper-V 的 Docker Desktop 和 Podman 版本,但发现它们都过于复杂且不稳定。即便它们能正常工作,使用 Linux 虚拟机来托管容器的 Hyper-V 也是最佳选择。但这一切都会带来额外开销,多层虚拟基础设施会阻碍工作,而且每次重启电脑都需要重新构建。

问题的部分原因在于 WSL。它是个不错的工具,但 WSL2 的文件系统集成速度较慢,你只能通过 Visual Studio Code 的远程集成来处理代码,这意味着要在每个正在构建和测试的容器中安装 VS Code Server。如果你使用 Kubernetes,管理的复杂度会更高,让你无法专注于代码。

最后,只能在另一台运行 containerd 的 Linux 服务器上进行大部分容器测试和开发。虽然这样能行得通(且拥有工作站级设备的所有资源),但它不便于携带,而且不知为何,Ubuntu 的远程桌面访问对来说也无法使用。

微软 Build 大会带来转机

好在微软在 2026 年的 Build 大会上围绕 WSL 发布了多项公告,旨在让 Windows 重新成为开发者平台。第一项是改进后的 WSL3,还需要一段时间才能推出;第二项是 WSL 原生容器支持,已于 6 月底发布。目前,社区已经开始开发类似 Docker Desktop 的工具,以帮助监控和管理容器。

推出基于 WSL 的容器平台,与 Build 大会上其他以开发者为中心的 Windows 公告相契合。让 Windows 更像 Linux,是微软对开发者需求的回应,毕竟 Azure 上超 50% 的服务器运行的是 Linux 发行版。Linux 是云原生基础设施的基础,所以开发者无论身处何地,都需要能够基于它进行开发。

开启 WSL 容器之旅

WSL 容器提供了一个新的命令行界面(CLI),可与熟悉的 WSL 并行工作,其命令支持从创建到关闭的整个容器生命周期。要开始使用,你只需将 WSL 安装升级到当前的预发布版本(撰写本文时为 2.9.3)。只需打开管理员 PowerShell 终端,输入 `wsl --update --pre-release`,即可下载并安装最新的 WSL 版本。关闭并重新打开终端(以确保更新了上下文)后,输入 `wslc` 来检查 WSLC 是否已安装,它会列出可用的命令。如果你想将容器工作与 WSL 分开(并避免可能意外影响 WSL 安装的输入错误),新的 CLI 也可作为 WSL 容器的别名。

微软的底层创新

微软利用 WSL 容器在 Windows 中试验 Linux 的新集成点。一个关键变化是使用了新的文件系统,显著加快了容器内对 Windows 的访问速度。另一项改进是为 WSL 容器提供了新的网络模式,可直接通过 Windows 网络栈中继网络连接,确保其能访问与 Windows 相同的资源和安全设置。

在 Windows 应用程序中调用 Linux 容器

当你开始在 Windows 代码中使用 WSL 容器 API 时,事情就变得更有趣了。你可以在桌面应用程序中调用 Linux 容器,利用现有服务,在 CI/CD 管道中构建和部署容器。新的文件系统和网络栈有助于减少跨越两个平台边界时产生的摩擦。

WSL 容器 API 以 NuGet 包的形式提供,支持 C、C# 和 C++。它允许你的代码启动和停止容器,并直接与之交互,发送命令行调用并读取响应。有趣的是,你可以从代码中启动一个容器化服务,并在本地网络端口上公开其 REST 或 gRPC API。微软提供了示例代码,展示了在这个早期阶段的可行性。

微软正在进行一场革命。它将云原生、服务驱动的模式引入 Windows,并利用它弥合数十年的差异化发展。你无需重写在 Linux 上运行的服务,只需将服务容器化,然后通过 WSL 容器 API 启动它。完成后,API 会自动清理,关闭容器并回收其使用的内存。

需要记住的是,这只是一个快速发展平台的首次公开预览。这里有很多机会,比如基于为 WSL1 开发的系统调用转换层,创建一个原生的 Windows 到 Linux 应用程序集成栈,消除使用基于 Web 的服务调用的开销。未来的发展值得期待,而这个首次发布确实非常有趣。

在 Windows 上管理 Linux 容器

如果你想在 Windows 开发硬件上获得类似 Docker Desktop 的容器构建和测试体验,可能不用等太久。WSL 容器的底层 API 已经被用于开发管理和监控容器的工具。其中一个工具是 WSL Container Desktop,正在 GitHub 上进行开发。虽然目前还没有发布版本,但通过克隆源代码仓库并使用.NET CLI 进行构建,就可以轻松编译并运行。你需要安装 Windows App SDK,有些功能还需要访问 Azure CLI。

WSL Container Desktop 采用 C# 编写,拥有 WinUI 前端。目前仅在 x64 上进行了验证,但在 Arm64 电脑上也能编译并运行它,用于测试和运行容器。运行后,它为 WSL 托管的容器提供了一个设计精良的前端,显示正在运行的容器及其使用的资源。你可以将 WSL Container Desktop 连接到 Docker 和 Azure 等容器注册表,以便快速拉取基础容器,然后使用 WSL 容器环境添加自己的代码和自定义设置。

主要交互界面是 WSL Container Desktop 仪表盘,它显示正在运行的容器及其当前资源使用情况。界面元素以卡片形式展示,借鉴了 Windows 自身的用户界面,尤其是其设置应用。从仪表盘,你可以深入了解可用的容器,具备快速启动、停止和重新加载选项,还有扩展功能,包括在浏览器中打开相应端口。用一个包含完整 KDE 网络桌面的容器进行了测试,让能在浏览器中运行一个 Linux 发行版容器。

其他选项包括详细视图,可显示当前日志并提供检查容器状态的工具。在调试和测试容器应用程序时,这类工具很有用,因为它能提供 WSL 容器 CLI 所没有的见解。还有一个选项可帮助你在下载完镜像且不再需要时进行清理,通过分析显示最大的镜像和一段时间未使用的镜像。

除了处理 WSL 容器的工具外,WSL Container Desktop 还提供了一个基本的设置工具,可帮助你配置其外观和与 Windows 的集成方式。

在 Windows 中运行 Kubernetes 进行云原生开发

WSL Container Desktop 一个更实用的功能是能够在 WSL 中快速搭建一个 K3s Kubernetes 实例,用于托管 WSL 容器,为你提供一个本地环境,随时随地构建和测试云原生应用程序。K3s 工具提供了与 Kubernetes 项目自身的 Headlamp UI 类似的体验,让你可以轻松在开发环境和生产 Kubernetes 集群之间切换。

可以说,WSL 容器是那种你原本以为不需要,但现在却离不开的 Windows 功能之一。它简化了在 Windows 中构建容器开发工具链的过程,同时让你能够考虑新一代的混合应用程序,充分利用 Windows 和 Linux 数十年的开发成果。结果是几年前难以想象的:将 Linux 容器嵌入 Windows 应用程序中,并将其视为另一个本地服务。随着 WSL 容器平台的发展,你有望看到更多将 Linux 和 Windows 结合的方式,利用容器打造一个兼具两者优势的混合平台。

分类

开发工具、软件开发、Kubernetes 与容器、云原生、云计算

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 1:38:05

自编码器原理与应用:从数据压缩到生成模型

1. 自编码器:从数据压缩到生成模型的双重革命我第一次接触自编码器是在处理医学图像数据集时,面对数万张高分辨率CT扫描图,存储和传输成了大问题。传统压缩算法要么损失关键细节,要么压缩率有限。直到尝试用自编码器,才…

作者头像 李华
网站建设 2026/7/24 1:36:30

Unity URP动态水面Shader实现:从法线扰动到深度折射全解析

1. 项目概述:为什么要在URP里折腾水面?做游戏或者数字孪生这类项目,场景里要是没片像样的水,总觉得差点意思。静态的水面贴图早就过时了,玩家和用户现在要的是那种波光粼粼、能倒映天空、甚至能互动起浪的真实感。Unit…

作者头像 李华
网站建设 2026/7/24 1:36:18

MSP430 ADC12_A模块:寄存器配置、中断机制与低功耗数据采集实战

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于德州仪器(TI)MSP430系列微控制器的项目中,模数转换器(ADC)往往是连接物理世界与数字处理核心的咽喉要道。无论是读取温度传感器的微弱电压,还…

作者头像 李华
网站建设 2026/7/24 1:28:15

虾皮之家相关的工具有哪些?五大类Shopee数据分析工具全盘点

很多Shopee卖家在这款插件关闭之后,第一反应是"赶紧找替代品",但打开百度一搜,发现数据分析工具五花八门——有免费的、有付费的、有插件的、有网页端的、有做选品的、有做广告的。如果你需要一个能替代这款插件全局分析能力、同时…

作者头像 李华
网站建设 2026/7/24 1:27:00

电池弹片机构选用的优质材质探讨

在当今各类电子产品广泛普及的时代,电池弹片机构作为其中的关键组件,发挥着极为重要的作用。它能够连接电池与电子设备电路,保障电池电源稳定传输,其性能的优劣直接影响到电子产品的整体质量和可靠性。对于电池弹片机构而言&#…

作者头像 李华
网站建设 2026/7/24 1:25:52

职场能力突围:学历与能力的错位与应对策略

1. 职场现象观察:学历与能力的错位困境上周和几个老同事聚餐时,听到一个特别有意思的案例:某互联网公司一位大专学历的95后,凭借出色的项目交付能力月薪涨到近3万,结果团队里211毕业的领导处处给他穿小鞋。这种情况在技…

作者头像 李华