最准判断WSL内核版本的方式是运行wsl --status,它显示默认版本、内核号(如5.10.16)等;Docker Desktop 4.30+要求内核≥5.15.x,若低于则需升级。

检查当前 WSL 版本和内核信息
直接运行 wsl --status 是最准的判断方式,它会显示当前默认版本、内核版本号(如 5.10.16)、Windows 更新状态等关键字段。Docker Desktop 4.30+ 要求内核 ≥ 5.15.x,若输出中 Kernel version 明显低于该值(比如仍是 4.19.121 或 5.10.16),就确认是内核过旧导致报错。
补充验证:运行 wsl -l -v 查看已安装发行版及其 VERSION 列——这里只反映发行版是否被设为 WSL 2,**不反映内核版本**,不能替代 wsl --status。
wsl --update 失败时别硬等
很多用户卡在 wsl --update 的“正在安装”或“安全频道支持出错”,本质是 Windows Update 通道被策略/网络/防火墙阻断。此时继续重试毫无意义。
- 关闭 Windows Update 暂停状态(设置 → 更新与安全 → 暂停更新 → 关闭)
- 临时禁用杀软和企业级防火墙(尤其 Symantec、McAfee、奇安信等)
- 跳过在线更新:直接去 GitHub WSL Releases 下载最新
Microsoft.WSL_x64.msixbundle(非 .msi)
下载后以管理员身份在 PowerShell 中执行:Add-AppxPackage .\Microsoft.WSL_x64.msixbundle。这是目前最稳定、最接近 Store 版本的升级路径。
必须确保 WSL 2 内核生效,不只是设默认版本
wsl --set-default-version 2 只影响新安装发行版的默认类型,对已有发行版(如 Ubuntu-20.04)无效。若 wsl -l -v 显示某发行版 VERSION 是 1,需单独升级:
- 先终止所有实例:
wsl --shutdown - 再执行:
wsl --set-version 2(例如wsl --set-version Ubuntu-20.04 2) - 注意:该操作会触发完整转换,耗时几分钟,期间不要关机或中断
转换完成后再次 wsl -l -v 确认 VERSION 列变为 2,且 wsl --status 中 Kernel version 已更新到 ≥ 5.15.x。
Docker Desktop 启动前最后三步
即使 WSL 内核和发行版都 OK,Docker Desktop 仍可能因残留状态失败:
- 彻底清理旧 Docker WSL 实例:
wsl --unregister docker-desktop和wsl --unregister docker-desktop-data(报错可忽略) - 重启电脑(不是注销,是完整重启,确保 Hypervisor Platform 和 WSL2 驱动完全加载)
- 启动 Docker Desktop 前,先手动运行一次
wsl进入任意发行版,让 WSL 子系统真正激活
内核版本和发行版版本是两回事;wsl --update 不可靠时,Microsoft.WSL_x64.msixbundle 是唯一兜底方案;Docker Desktop 对内核版本的校验发生在启动瞬间,任何缓存或未重启都会导致它读到旧内核。


















