Wndows Docker Desktop-Unexpected WSL error错误
问题:
Docker Desktop-Unexpected WSL error An unexpected error was encountered while executing a WSL command. Commoncauses include access rights issues, which occur after waking the computer or notbeing connected to your domain/active directory. Please try shutting WSL down (wsl --shutdown) and/or rebooting your computer. lfnot sufficient, WSL may need to be reinstalled fully. As a last resort, try touninstall/reinstall Docker Desktop. lf the issue persists please collect diagnostics andsubmit an issue..://docs.docker.com/desktop/troubleshoot/overview/#diagnose-from-the-termin...
环境:
Microsoft Windows 版本 22H2(操作系统内部版本 19045.6093)© Microsoft
初步判断:
根据提示,Docker Desktop 出现 "Unexpected WSL error" 通常与 WSL (Windows Subsystem for Linux) 集成相关。即WSL服务有问题。
问题排查:
按照网络上给出的答案,多次尝试。具体步骤如下:
嫌麻烦就下拉大最下面 【10. 最终方案卸载并重新安装 WSL 核心】
1. 检查 Windows 版本是否达标
- 按下
Win + R
,输入winver
查看系统版本:- 若版本低于 1903,需升级 Windows(设置 → 更新和安全 → Windows 更新)
我的系统版本:Microsoft Windows 版本 22H2(操作系统内部版本 19045.6093)© Microsoft
2. 启用硬件虚拟化(关键步骤)
- 进入 BIOS/UEFI:
- 重启电脑,开机时按对应按键(常见:Del、F2、F1、F10,开机画面会提示),我的按键是F1。不同的电脑按键不同,可以多尝试一下。
- 找到虚拟化选项:
- Intel 处理器:
Intel VT-x
或Virtualization Technology
- AMD 处理器:
AMD-V
或SVM Mode
- 部分主板可能显示为
Virtualization
或VT-d(我的电脑是这样子的)
- 设置为 Enabled,保存并退出 BIOS(通常按 F10 保存)
- Intel 处理器:
3. 启用必要的 Windows 功能
-
方法 1:通过图形界面
- 打开 “控制面板 → 程序 → 程序和功能 → 启用或关闭 Windows 功能”
- 勾选以下选项:
- 适用于 Linux 的 Windows 子系统
- 虚拟机平台
- Hyper-V(若有,勾选 “Hyper-V 平台” 和 “Hyper-V 管理工具”)
- 点击 “确定”,等待安装完成后重启电脑
-
方法 2:通过 PowerShell(管理员模式)
powershell
# 启用 WSL 基础组件 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart# 启用虚拟机平台(WSL2 依赖) dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /norestart# 启用 Hyper-V(可选,部分场景需要) dism.exe /online /enable-feature /featurename:Hyper-V /norestart
执行后重启电脑。
4. 安装 WSL2 内核更新包
- 即使启用了功能,可能仍需手动安装 WSL2 内核:
- 下载官方内核更新包:适用于 x64 计算机的 WSL2 Linux 内核更新包
- 双击安装,完成后重启电脑。
5. 确认 WSL2 已设置为默认版本
打开 PowerShell(管理员),执行:
wsl --set-default-version 2
6. 启动 WSL:
要启动 WSL(Windows Subsystem for Linux)并进入你的 Ubuntu-18.04 发行版,可以按照以下步骤操作:
方法 1:通过开始菜单启动
- 点击 Windows 开始菜单
- 找到并点击你的 Linux 发行版(如 "Ubuntu 18.04 LTS")
- 首次启动可能需要几分钟初始化,之后会进入 Linux 命令行界面
方法 2:通过命令行启动
- 打开 PowerShell 或命令提示符(无需管理员权限)
- 输入以下命令直接启动默认发行版:
wsl
- 或指定启动 Ubuntu-18.04:
wsl -d Ubuntu-18.04
启动后验证
成功启动后,你会看到类似以下的命令行提示符(用户名和主机名可能不同):
username@computername:~$
此时你可以执行 Linux 命令(如 ls
、pwd
等),说明 WSL 已正常运行。
我的返回错误:
Wsl/Service/CreateInstance/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
错误代码
Wsl/Service/CreateInstance/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
表明 WSL 启动失败,核心原因是 Hyper-V 组件未安装或未启用(WSL 2 依赖 Hyper-V 虚拟化技术)
7. 检查是否存在第三方虚拟化冲突
部分第三方虚拟机软件(如 VirtualBox、VMware)可能与 Hyper-V 冲突:
- 暂时卸载或禁用此类软件
- 重启电脑后,仅启动 WSL 测试是否正常
按照官方WSL无法启动,启用适用于Linux 的Windows子系统失败!文档给出的答案,暂时禁用所有非微软官方的后台服务和程序,排除第三方软件(如安全程序、优化工具、插件等)对系统功能的干扰。
8. 重置 WSL 环境
若以上方法无效,可彻底重置 WSL 环境:
打开 PowerShell(管理员),执行:
# 以管理员身份执行
wsl --shutdown
wsl --unregister all # 注销所有 WSL 发行版(会删除数据,谨慎操作)
wsl --install -d Ubuntu-18.04 # 重新安装
完成后,再次启动 WSL 发行版,通常能解决 Hyper-V 识别问题。如果是企业版系统,还需确认是否有组策略限制了 Hyper-V 的使用(可联系 IT 部门排查)。
9. 排查文件系统损坏:
如果文件系统损坏,可能导致 WSL 无法正常启动。
以上方法我都尝试了,都不行,因为我的是很早之前安装的,安装之后是可以使用的,所以我感觉是文件系统损坏,最后我决定卸载并重新安装 WSL 核心
10. 最终方案卸载并重新安装 WSL 核心
以下是彻底卸载并重新安装 WSL 核心组件的步骤,适用于解决各种 WSL 启动和运行问题:
步骤 1:卸载 WSL 相关组件
-
以管理员身份打开 PowerShell
(右键开始菜单 → 选择 “Windows PowerShell (管理员)”) -
依次执行卸载命令:
# 关闭所有 WSL 实例 wsl --shutdown# 注销所有已安装的 Linux 发行版(会删除数据,重要数据请先备份) wsl --unregister all# 卸载 "适用于 Linux 的 Windows 子系统" 组件 dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart# 卸载 "虚拟机平台" 组件(WSL 2 依赖) dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart# 卸载 Hyper-V 组件(若已安装) dism.exe /online /disable-feature /featurename:Microsoft-Hyper-V /norestart
步骤 2:重启电脑
执行完卸载命令后,必须重启电脑,确保所有组件完全卸载。
步骤 3:重新安装 WSL 核心组件
-
再次以管理员身份打开 PowerShell
-
依次执行安装命令:
# 安装 "适用于 Linux 的 Windows 子系统" 基础组件 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart# 安装 "虚拟机平台" 组件(WSL 2 必须) dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /norestart# 安装 Hyper-V 组件(可选,部分场景需要) dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V /norestart
步骤 4:安装 WSL 2 内核更新包
-
下载官方 WSL 2 内核更新包:
适用于 x64 计算机的 WSL2 Linux 内核更新包
(若使用 ARM 架构处理器,需下载对应版本) -
双击下载的
.msi
文件,按照提示完成安装。
步骤 5:设置 WSL 2 为默认版本
wsl --set-default-version 2
步骤 6:重新安装 Linux 发行版
选择一个发行版重新安装(以 Ubuntu 为例):
wsl --install -d Ubuntu
也可以从 Microsoft Store 搜索并安装其他发行版(如 Debian、Kali Linux 等)。
我在 Microsoft Store 搜索并安装的
步骤7:验证安装结果
安装完成后,执行以下命令检查状态:
wsl --list --verbose
若显示已安装的发行版且状态正常,说明 WSL 核心组件已成功重置并重新安装。
通过以上步骤,可以彻底清理旧的 WSL 配置并重建环境,解决大多数因组件损坏或配置冲突导致的启动失败问题。
步骤8:启动WSL
方法 1:通过开始菜单启动(我采用的方式)
- 点击 Windows 开始菜单
- 找到并点击你的 Linux 发行版(如 "Ubuntu 22.04.5 LTS")
- 首次启动可能需要几分钟初始化,之后会进入 Linux 命令行界面
方法 2:通过命令行启动
- 打开 PowerShell 或命令提示符(无需管理员权限)
- 输入以下命令直接启动默认发行版:
wsl
- 或指定启动 Ubuntu-22.04.5:
wsl -d Ubuntu-22.04.5
启动后验证
成功启动后,你会看到类似以下的命令行提示符(用户名和主机名可能不同):