夜雨聆风学习资料网

ARTICLE · 1210334

WSL 容器转正:可以卸载 Docker 了吗?

WSL 容器转正:可以卸载 Docker 了吗?

本文基于 WSL 3.0.3(2026-10-10 发布,北京时间),所有命令和功能描述均来自微软、Docker 官方文档或 GitHub Release Notes,链接见文末。

◆ ◆ ◆

先说结论

WSL 容器(WSL Containers,命令行工具 wslc.exe)已经正式 GA 了。

微软在 2026 年 9 月 29 日发了官方博客《WSL containers is now generally available》,对应版本是 GitHub 上的 WSL 3.0.1。Release Notes 第一行写得很直白:

WSLc is generally available.

那能不能卸载 Docker Desktop?我的判断是:

◆只用 docker run / docker build 跑单个容器、本地起个 MySQL、Redis 的同学:可以开始迁移,迁完就能卸。
◆重度依赖 docker compose、Docker Desktop 自带 Kubernetes 的同学:先别卸。 官方博客明确说 Compose 支持还在做,是下一阶段的重点。

下面细说。

◆ ◆ ◆

回顾:从预览到转正

6 月底我写过一篇《WSL 自带容器了:wslc 入门》,当时用的是 WSL 2.9.3 预览版。文章开头我写了一句:

本文基于 WSL 2.9.3 预览版,功能仍在公开预览阶段,正式版预计 2026 年秋季发布。

现在秋季到了,微软没有食言。我把官方 Release 页面的时间线捋了一下(时间按北京时间):

版本
发布时间
状态
2.9.3
2026-06-29
Pre-release,Release Notes 标题是「WSL Containers (WSLC) is now in Public Preview」
2.9.4 ~ 2.9.13
2026-07 ~ 09
Pre-release,持续补命令,比如 container restart
3.0.12026-09-30正式版,「WSLc is generally available」
3.0.2
2026-10-06
Pre-release
3.0.3
2026-10-10
正式版(当前 Latest)

注:GitHub 上 3.0.1 的发布时间是 2026-09-29 17:18(UTC),换成北京时间已经是 9 月 30 日凌晨;微软博客的日期是 9 月 29 日。

3.0.1 的变更里还有一条很有意思的 PR:「Remove references to WSLC being in preview」,就是把代码里所有“预览”字样删掉。这算是最硬的转正证据了。

◆ ◆ ◆

GA 版比预览版多了什么

如果你读过上一篇,基础用法(run、ps、stop、build)都没变。GA 版主要补了这些,来自官方博客:

◆wslc container restart:重启运行中的容器;
◆wslc container cp:通过 tar 归档在容器内外拷文件;
◆wslc system info:一眼看清容器环境状态;
◆wslc network connect / disconnect:把容器挂到网络上、或者摘下来;
◆wslc events:实时输出容器事件流;
◆容器健康检查;
◆wslc create / wslc run 支持 --stop-timeout(-1 表示无限等待)和 --mount;
◆默认会话的存储路径可以配置,镜像终于可以不放在 C 盘了。

企业侧也补了 Intune 开关和镜像仓库白名单,对公司电脑上用的同学很关键。

◆ ◆ ◆

wslc 和 Docker Desktop 对比

这是大家最关心的。我按官方文档能确认的内容整理了一张表,官方没说的我标了“未见官方说明”。

对比项
wslc(WSL 3.0.x)
Docker Desktop
安装方式
WSL 自带,wsl --update 即可,没有单独的引擎要装
单独安装包
许可证 / 收费
随 WSL 提供,官方未提额外订阅
小企业(<250 人且年收入 <1000 万美元)、个人、教育、非商业开源免费;大企业商用、政府机构需付费订阅
命令行
wslc
,别名 container,命令结构贴近 Docker
docker
Compose
暂不支持
,官方称是下一步重点,目标是现有 compose.yaml 不改就能用
自带 Docker Compose
GUI
官方不提供;社区有 WinUI 3 应用「WSL Container Desktop」、TUI 工具「Lazywslc」
自带图形界面
Kubernetes
官方不内置;社区「WSL Container Desktop」可管理 k3s
自带 Kubernetes
内存占用
官方无对比数据;默认上限为 Windows 总内存的 50%,可在 settings.yaml 调整;空闲 30 秒后会话 VM 自动关闭
官方无对比数据
文件共享
virtiofs,官方称比 plan9 快约 2 倍
支持卷挂载
网络
新的 Consommé 模式,流量以当前用户的 Windows 进程身份发出,对 VPN、防火墙兼容更好
自行处理端口映射等
IDE 集成
VS Code Dev Containers 可用 wslc 作为驱动;VS Code 容器扩展支持 wslc;JetBrains IDE 未见官方说明
主流 IDE 普遍支持
编程 API
有,NuGet 包 Microsoft.WSL.Containers(C#、C++/WinRT)
Docker Engine API
企业管控
Intune 开关 + 镜像仓库白名单 + MDE 可观测
付费版提供管理功能

 单容器场景 wslc 已经够用了,缺的是 Compose、K8s 和图形界面这一整套“全家桶”。

◆ ◆ ◆

迁移步骤:一步一步来

下面的命令都能直接复制。PowerShell 命令在 Windows Terminal 里执行。

第一步:升级 WSL,确认 wslc 可用

●●●PowerShell

# 升级到最新的 WSL 正式版

wsl --update

# 确认 WSL 版本,wslc 需要 2.9.3 及以上

wsl --version

# 查看 wslc 版本

wslc version

# 跑一个官方示例,看到 Hello 说明一切正常

wslc run --rm hello-world

上一篇里我是用 wsl --update --pre-release 装的预览版,现在直接 wsl --update 就行了,不用再加参数。

第二步:先调好资源和存储位置

wslc 不读 .wslconfig,它有自己的配置文件 %LOCALAPPDATA%\wslc\settings.yaml。

●●●PowerShell

# 第一次执行会生成配置文件(所有项默认注释掉),并用编辑器打开

wslc settings

我自己会改这几项:

●●●YAML

session:

cpuCount:4# 分给容器会话的 CPU 数

memorySize:8GB# 内存上限,默认是 Windows 总内存的 50%

storagePath:D:\data# 镜像和容器存到 D 盘,C 盘松口气

改完让设置生效:

●●●PowerShell

# 结束当前会话,下次执行 wslc 命令时会按新配置启动

wslc system session terminate

注意:官方文档说了,修改 storagePath 不会搬走已有的镜像和容器,会在新位置建一个空会话。所以最好在迁移镜像之前先改好。

第三步:把 Docker 里的镜像搬过来

自己构建的、内网仓库拉不到的镜像,用 save / load 搬过去。在卸载 Docker Desktop 之前执行:

●●●PowerShell

# 用 Docker 把镜像导出成 tar 文件

docker image save -o myapp.tar myapp:latest

# 用 wslc 导入

wslc image load -i myapp.tar

# 确认导入成功

wslc image list

公网镜像不用搬,wslc 运行时会自动拉取。

第四步:把常用命令换过去

以本地开发最常见的“起一个 Web 服务”为例:

●●●PowerShell

# 后台运行 nginx,把本机 8080 映射到容器 80

wslc run -d--rm-p8080:80--name web nginx

# 查看运行中的容器

wslc container list

# 看日志

wslc container logs web

# 停掉(因为加了 --rm,停止后自动删除)

wslc container stop web

第五步:确认后再卸载

全部跑通、确认没有遗漏后,再按 Docker 官方的卸载文档卸掉 Docker Desktop。顺序别反了,否则镜像就导不出来了。

◆ ◆ ◆

谁可以卸,谁还不该卸

我按场景分了一下:

你的情况
建议
只用 docker run 起数据库、中间件,做本地联调
✅ 可以卸
公司规模超过 Docker 免费条款,又不想买订阅
✅ 优先迁移,许可证问题是实打实的
用 VS Code Dev Containers 开发
✅ 可以试,官方说 Dev Containers 支持 wslc 作为驱动
项目靠 docker compose up 一键起一整套服务
❌ 先别卸,wslc 还不支持 Compose
用 Docker Desktop 自带的 Kubernetes
❌ 先别卸
离不开图形界面管理容器
⚠️ 可以试试社区工具,但不是官方出品
用 IDEA 的 Docker 插件
⚠️ 官方未提 JetBrains 支持,建议先保留
需要跑 Windows 容器
❌ wslc 跑的是 Linux 容器,这个场景还是交给 Docker Desktop

说一下我自己:我做 Java 后端,平时就是起 MySQL、PostgreSQL 跑测试,几乎不用 Compose。对我来说,wslc 已经够用了。

◆ ◆ ◆

最后说一句

上一篇我说 wslc 是“很实在的更新”,转正之后这个判断没变,反而更确定了。

它的本质不是“又一个 Docker”,而是把 Linux 容器变成了 Windows 自带的能力——不用单独装引擎,不用操心许可证,IT 还能管得住。

至于 Docker Desktop 卸不卸,看你用了它多少东西:只用了 docker run,那就可以放心迁过来;Compose 和 K8s 离不开,就再等等,微软已经把 Compose 写进路线图了。

如果你也迁过来了,欢迎留言说说踩到了什么坑。

◆ ◆ ◆

参考链接

1.微软官方博客:WSL containers is now generally available(2026-09-29) https://blogs.windows.com/windowsdeveloper/2026/09/29/wsl-containers-now-generally-available/
2.Windows Command Line 博客:WSLC Architecture deep dive https://devblogs.microsoft.com/commandline/wslc-architecture-deep-dive/
3.GitHub Release:WSL 3.0.1(WSLc is generally available) https://github.com/microsoft/WSL/releases/tag/3.0.1
4.GitHub Release:WSL 3.0.3 https://github.com/microsoft/WSL/releases/tag/3.0.3
5.GitHub Release:WSL 2.9.3(Public Preview) https://github.com/microsoft/WSL/releases/tag/2.9.3
6.Microsoft Learn:WSL container https://learn.microsoft.com/en-us/windows/wsl/wsl-container
7.Microsoft Learn:Get started with containers on WSL https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-containers
8.Microsoft Learn:WSL container settings https://learn.microsoft.com/en-us/windows/wsl/wsl-container-settings
9.wslc 源码(image save / load 命令) https://github.com/microsoft/WSL/tree/master/src/windows/wslc/commands
10.Docker 官方:Docker Desktop license agreement https://docs.docker.com/subscription/desktop-license/
11.Docker 官方:Docker Desktop 概览 https://docs.docker.com/desktop/
12.Docker 官方:docker image save https://docs.docker.com/reference/cli/docker/image/save/
13.Docker 官方:Uninstall Docker Desktop https://docs.docker.com/desktop/uninstall/

相关学习资料