news 2026/8/22 11:16:38

Windows Server 2022 离线装 WSL 踩坑实录:Docker Desktop 的 WSL 版本检测究竟坑在哪

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows Server 2022 离线装 WSL 踩坑实录:Docker Desktop 的 WSL 版本检测究竟坑在哪

写在前面

先说一下我这边的环境:Windows Server 2022,标准版,物理机,纯内网环境,跟互联网物理隔离。需要跑 Docker Desktop,自然绕不开 WSL 2 后端。

按理说,Windows Server 2022 官方宣称支持 WSL,文档写得也挺明白。但真上手才发现,网上的教程大多针对 Windows 11 / 10 消费者版,Server 版很多细节完全对不上号。尤其是离线部署,坑一个接一个。

这篇不是教程的复读机,把我从“装上了但用不了”到“彻底跑通”的过程记下来,给同样在 Server 上折腾 WSL 的同行省点时间。


相关资源:
Microsoft.WSL-2.7.12.0-x64-ARM64:https://download.csdn.net/download/u012551928/93296515


第一回合:装上了 Ubuntu,但wsl命令不认

一开始我用.appx包离线装了 Ubuntu 22.04,双击安装包一路 Next,看起来一切顺利。开始菜单里也有 Ubuntu 的图标了,点开也确实能初始化,创建 root 用户,进到 bash 里边。

但奇怪的是,在 PowerShell 里敲wsl --list --verbose,能看到 Ubuntu 状态是Running,版本是 2。可敲ubuntu命令,直接报“不是内部或外部命令”。再敲wsl --version,直接报“命令行选项无效”。

这时候我才意识到:Server 自带的 wsl.exe 是个古董版本,很多新命令参数根本不支持。Ubuntu 发行版虽然装上了,但底层的 WSL 组件还是系统自带的老掉牙版本。

网上很多人说“装个内核更新包wsl_update_x64.msi就行”,我试了,装完后wsl --list --verbose还能用,但--version依然不支持。Docker Desktop 一启动,照样弹框说 WSL too old。


第二回合:搞明白 Docker Desktop 到底在检查什么

仔细看了 Docker 的报错信息,它说的是“Your version of Windows Subsystem for Linux (WSL) is too old.”,然后建议执行wsl --update

问题在于,离线服务器没法执行--update(这个命令默认去 Microsoft Store 在线下载)。而即便手动装了wsl_update_x64.msi,Docker 依然不认。

后来翻了微软的官方文档,才发现 WSL 的组件其实分两层:

  • 内核层wsl_update_x64.msi负责更新 Linux 内核,这个装了之后wsl --list --verbose能正常显示版本号。
  • 应用层wsl.exe本身是 UWP 应用,需要通过.msixbundle包升级。Docker Desktop 检查的是应用层版本,要求至少2.1.5以上。

Server 2022 自带的 wsl.exe 版本号大概是 1.x,根本不认识--version参数。所以即使内核更新了,应用层没变,Docker 照样认为你“太老”。


第三回合:离线升级 WSL 应用层的正确姿势

既然知道了问题所在,离线升级就明确方向了:

  1. 在联网机器上下载最新的Microsoft.WSL_*.msixbundle(去 GitHub Releases 找,别去商店,商店离线包不好抓)。
  2. 顺带下载依赖包Microsoft.VCLibs.140.00.UWPDesktop_*.appx(这个很多离线教程都漏了,但缺了它Add-AppxPackage会报错)。
  3. 拷贝到服务器,用 PowerShell 的Add-AppxPackage安装

关键命令:

Add-AppxPackage-Path.\Microsoft.VCLibs.140.00.UWPDesktop_xxx.appxAdd-AppxPackage-Path.\Microsoft.WSL_xxx.msixbundle

装完之后必须重启(光注销不够,我试过重启 wsl --shutdown 没用,必须重启系统,否则 PATH 里还是旧版 wsl.exe)。

重启后,再开 PowerShell,wsl --version终于能正常输出版本号了。Docker Desktop 再启动,那个弹框消失,顺利进到主界面。


几个容易踩的细节

  • 版本号对应关系:Docker Desktop 要求 WSL 应用版本 ≥ 2.1.5,而 Server 自带的是 1.x,所以必须升应用层,不是只升内核。
  • 依赖包别漏VCLibs不装的话,Add-AppxPackage会报0x80073CF3,提示“包无法进行更新、相关性或冲突验证”。这个依赖包在 WSL GitHub Release 页的 Assets 里通常也会提供,留意一下。
  • 关于--version参数:如果你的wsl.exe不认识这个参数,说明应用层就是旧版,升.msixbundle是唯一解。
  • Server 版没有 Microsoft Store:所以不要试图用wsl --installwsl --update,这些命令在 Server 上要么报错,要么去连商店(连不上)。老老实实离线包。

最终状态

现在服务器上 WSL 应用版本是 2.3.1.0,Ubuntu 22.04 作为默认发行版,Docker Desktop 正常运行,能拉镜像、起容器。整个过程比预期曲折,但搞明白原理之后其实也就那几步。


一点心得

Windows Server 上的 WSL 其实是个“半成品”状态——功能都有,但包管理、更新机制跟桌面版割裂。微软官方文档重点放在 Windows 10/11,Server 的离线部署案例少得可怜。如果你也遇到类似问题,别迷信wsl_update_x64.msi,那个只管内核,真正要升级的是wsl.exe本体。

另外,如果你只是临时要用 Docker,也可以考虑切 Hyper-V 后端,但那样容器的文件系统性能不如 WSL 2,而且网络配置更麻烦。既然 WSL 2 能跑通,还是建议走这条路。


希望这篇能帮到正在离线 Server 上挣扎的同仁。有问题欢迎留言交流,虽然我可能不常看,但看到会回。

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

基于Spring Boot的个性化旅游攻略定制系统:毕业设计全栈实践指南

这次我们来看一个面向2026届计算机专业毕业设计的选题:基于Spring Boot的个性化旅游攻略定制系统。这个选题编号00501,覆盖了Java、Python、PHP、C#、Node.js以及小程序和APP全栈技术栈,是一个典型的、综合性强的Web应用项目。对于即将进入毕…

作者头像 李华
网站建设 2026/8/22 11:15:52

Pharos:MCP服务器的包管理器,让AI助手工具管理像npm一样简单

最近在尝试为 AI 助手(如 Claude、Cursor)配置各种 MCP 服务器时,你是否也感到头疼?每个 MCP 服务器都需要手动克隆仓库、安装依赖、配置环境变量,过程繁琐且容易出错。当需要管理多个服务器或在不同项目间切换时&…

作者头像 李华
网站建设 2026/8/22 11:11:37

Linux进程虚拟地址空间:从实验到内核结构

前言每一个程序都以为自己独占一段内存空间,这个错觉是谁给的,同时,为什么创建子进程之后父子进程打印出相同的地址值但是值又是不相同的。这些问题就要通过今天的学习便可一一破解。一、进程地址空间1、进程地址空间图2、虚拟地址空间的直接…

作者头像 李华
网站建设 2026/8/22 11:11:30

深入解析Pub/Sub系统局限性:从消息语义到运维实战的避坑指南

Pub/Sub(发布/订阅)系统是构建现代分布式应用、微服务解耦和实时数据流处理的核心基础设施。但很多团队在引入或深度使用这类系统时,会遇到一个典型困境:初期一切顺利,随着业务量增长和场景复杂化,各种“意…

作者头像 李华
网站建设 2026/8/22 11:10:52

开源双臂机器人Hei-rebot-lift实战:从零搭建具身智能平台

如果你对机器人、AI和自动化感兴趣,但总觉得“具身智能”这类前沿概念离自己太远,或者认为搭建一台能实际工作的机器人需要昂贵的预算和专业的实验室,那么这篇文章就是为你准备的。最近,一个名为Hei-rebot-lift的开源项目在开发者…

作者头像 李华
网站建设 2026/8/22 11:10:24

Python 连接 DeepSeek API,OpenAI 两种对话方式基础实现

上一节-Python 连接 DeepSeek API,OpenAI的基础操作 文章目录三、进阶功能 1:实现多轮上下文对话1、技术原理:传递对话历史2、完整代码示例3、代码关键点解析四、进阶功能 2:实现流式输出1、技术原理2、完整代码示例3、代码关键点…

作者头像 李华