WSL 3.0 怎么升级:发布日期、升级命令、wslc 上手,以及目前还缺什么
WSL 3.0.1 于 2026 年 9 月 29 日发布,wsl --update 即可升级,wslc 直接跑 Linux 容器。含步骤与已知限制。
适用于 Linux 的 Windows 子系统(WSL)3.0.1 在 2026 年 9 月 29 日发布,这是第一个 3.0 版本号的正式版,升级只需要一条 wsl --update。这一版把内置容器工具 wslc 标为正式可用(generally available),不用再单独装容器引擎,就能在 Windows 上跑 Linux 容器。下面按顺序讲发布日期、谁能升、升级步骤、wslc 的第一批命令、Windows 文件怎么进容器,以及现在还缺什么。文中的命令和版本号,都在 2026 年 10 月 18 日对照微软文档或 microsoft/WSL 发布页核对过。想看新闻视角,见我们对 WSL 3.0 发布的报道。
要点
- 发布日期:3.0.1 发布于 9 月 29 日;3.0.2 在 10 月 5 日以预发布形式推出;10 月 9 日的 3.0.3 是发布页目前列出的最新版,内核 6.18.54.1。
- 升级命令:在 PowerShell 里执行
wsl --update,再用wsl --version确认。微软文档写明wslc要求 WSL 2.9.3 及以上,3.0.x 当然满足。 - 还没有的功能:
wslc compose尚未提供,微软称它是呼声最高的需求,是接下来迭代的重点。
各版本发布日期
WSL 3.0 是一个版本号,不是和 WSL 2 并排安装的另一个产品。GitHub 发布页上 3.0.x 这一条线是这样的。
| 版本 | 日期 | 发布页状态 | 主要内容 |
|---|---|---|---|
| 3.0.1 | 9 月 29 日 | 正式版 | 注明「WSLc 正式可用」;SDK 增加 STDIN 支持;虚拟机终止超时提到 30 秒 |
| 3.0.2 | 10 月 5 日 | 预发布 | wslc events --format json、容器健康状态通知、向发行版开放内核头文件和 perf 工具 |
| 3.0.3 | 10 月 9 日 | 最新 | 内核 6.18.54.1、从标准输入读取构建上下文、事件过滤修复 |
如果你搜的是「WSL 3 发布日期」,答案是 2026 年 9 月 29 日。升级时这个区别有用:直接 wsl --update 拿到的是最新的非预发布版本,想试预览版要加 --pre-release。
谁能升级
微软 WSL 安装页写的前提是 Windows 10 2004 版(内部版本 19041)及以上,或 Windows 11。微软的发布公告没有为 wslc 单独写 Windows 版本。我们的新闻条目起初写的是「仅限 Windows 11」,已在 2026-10-18 更正,因为微软一手文档里没有这句话。测试过这个版本的 Windows Latest 称 wslc 在 Windows 10 上跑通了,还转述微软产品经理的说法:WSL 容器在目前支持 WSL 的地方都能用。这只是第三方报道的结果,不是微软的保证,Windows 10 机器升级后先看 wsl --version,再决定要不要依赖它。
另外,Microsoft Learn 写明容器功能要求 WSL 2.9.3 或更高,所以已经在用较新商店版 WSL 的机器,只需要更新。
升级步骤
WSL 的升级就是两条 PowerShell 命令,后一条用来确认结果。
-
先备份舍不得丢的发行版。
wsl --export <发行版名> <文件名>会把发行版导出成 tar 快照,微软的基础命令参考里有这条。 -
执行更新:
wsl --update -
确认版本:
wsl --version -
如果网络访问不了微软商店,
wsl --update --web-download会改从 GitHub 下载更新。
想在不加入 Windows 预览体验计划的前提下试预览版,微软文档给的是 wsl --update --pre-release。
wslc 第一轮上手
wslc.exe 随 WSL 一起安装,升级后不需要再装别的。下面的命令都来自微软的入门教程。
wslc version
wslc run --rm hello-world
wslc run --rm -it ubuntu:latest bash -c "echo Hello world from WSL container!"
wslc run -d --rm -p 8080:80 --name web nginx
curl localhost:8080
wslc container list
wslc exec web cat /etc/os-release
wslc container stop web
第一条看版本,第二条拉取并运行测试镜像,nginx 那几行演示了把端口发布出来,在 Windows 上访问 localhost:8080。--rm 表示容器停止后自动删除。想构建自己的镜像,在项目目录放一个 Containerfile,执行 wslc build -t helloworld-django .,再用 wslc run -d --rm -p 8000:8000 --name django helloworld-django 启动。
同一份教程里还有这些常用命令:wslc --help、wslc image list、wslc container list --all、wslc stats、wslc container logs <id>,以及回收磁盘空间的 wslc container prune 和 wslc image prune。公告还提到 container.exe 是 wslc.exe 的别名。
要调整容器会话的 CPU、内存和存储位置,运行 wslc settings,它会生成 %LOCALAPPDATA%\wslc\settings.yaml。设置页明确说 .wslconfig 对 wslc 不生效。改完后用 wslc system session terminate 停掉当前会话,新值才会加载。
virtiofs 与文件访问
Windows 文件夹通过 virtiofs 进入容器。Windows Command Line 博客的架构文章说,卷是在 Linux 虚拟机里挂载的 virtiofs 共享,再以 bind mount 方式交给容器,并称它「大约是」WSL 目前访问 C 盘所用 plan9 协议的两倍快。微软没有公布测试条件,这是厂商口径,用你自己的仓库测一遍更稳。
文章里的示例,把一个 Windows 目录挂进容器:
wslc container run -v C:\Windows\System32\drivers\etc:/volume -it debian:latest ls /volume
微软的教程仍然建议,代码放在你所用工具所在的文件系统里:用 Linux 工具就在 Linux 发行版里编辑。需要原生 Linux 文件系统的卷,架构文章介绍了用 wslc volume create --driver vhd 创建的 VHD 卷。
已知限制与回滚
有几处缺口已经有文档或报道,团队迁移前先确认。
wslc compose目前没有。公告说目标是让现有的compose.yaml不改就能跑,没有给日期。- Windows Latest 转述微软人员称
--privileged暂未支持,在容器里跑集群类工具的人会遇到。这是二手信息,请对照自己的场景验证。 - Microsoft Learn 说明容器 API 的 C++/WinRT 封装还在预览,可能有破坏性改动。
关于回滚,我在微软文档里没有找到把 WSL 降到旧版本的官方命令。发布页保留了各个版本,但微软没有写降级步骤,所以这里也不给。稳妥的办法是升级前先做第 1 步的 wsl --export 快照。遇到问题可以到 microsoft/WSL 的 issue 页反馈,微软文档页上也把它列为反馈入口。
建议先在一台机器上升级,跑通上面的 hello-world 和 nginx 示例,再测你真实的目录挂载和依赖 Compose 的流程,然后再铺开。