当前位置: 首页 > ai >正文

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 保存)

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:通过开始菜单启动

  1. 点击 Windows 开始菜单
  2. 找到并点击你的 Linux 发行版(如 "Ubuntu 18.04 LTS")
  3. 首次启动可能需要几分钟初始化,之后会进入 Linux 命令行界面

方法 2:通过命令行启动

  1. 打开 PowerShell 或命令提示符(无需管理员权限)
  2. 输入以下命令直接启动默认发行版:
    wsl
    
  3. 或指定启动 Ubuntu-18.04:
    wsl -d Ubuntu-18.04
    

启动后验证

成功启动后,你会看到类似以下的命令行提示符(用户名和主机名可能不同):

username@computername:~$

此时你可以执行 Linux 命令(如 lspwd 等),说明 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 相关组件

  1. 以管理员身份打开 PowerShell
    (右键开始菜单 → 选择 “Windows PowerShell (管理员)”)

  2. 依次执行卸载命令

    # 关闭所有 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 核心组件

  1. 再次以管理员身份打开 PowerShell

  2. 依次执行安装命令

    # 安装 "适用于 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 内核更新包

  1. 下载官方 WSL 2 内核更新包:
    适用于 x64 计算机的 WSL2 Linux 内核更新包
    (若使用 ARM 架构处理器,需下载对应版本)

  2. 双击下载的 .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:通过开始菜单启动(我采用的方式)

  1. 点击 Windows 开始菜单
  2. 找到并点击你的 Linux 发行版(如 "Ubuntu 22.04.5 LTS")
  3. 首次启动可能需要几分钟初始化,之后会进入 Linux 命令行界面

方法 2:通过命令行启动

  1. 打开 PowerShell 或命令提示符(无需管理员权限)
  2. 输入以下命令直接启动默认发行版:
    wsl
    
  3. 或指定启动 Ubuntu-22.04.5:
    wsl -d Ubuntu-22.04.5 

启动后验证

成功启动后,你会看到类似以下的命令行提示符(用户名和主机名可能不同):

步骤9:启动Docker  Desktop

http://www.xdnf.cn/news/16439.html

相关文章:

  • 从视觉到智能:RTSP|RTMP推拉流模块如何助力“边缘AI系统”的闭环协同?
  • MOE 速览
  • 吃透 lambda 表达式(匿名函数)
  • 实验-静态路由
  • Polkadot 的 Web3 哲学:从乔布斯到 Gavin Wood 的数字自由传承
  • 在 CentOS 上安装 FFmpeg
  • “量子通信”
  • 初识opencv05——图像预处理4
  • python导包机制-更优方式
  • 构建你的专属区块链:深入了解 Polkadot SDK
  • 【MySQL基础篇】:MySQL常用数据类型的选择逻辑与正确使用
  • 【Python】自动化GIT提交
  • Datawhale AI夏令营 task2 笔记问题汇总收集
  • 前端实现银河粒子流动特效的技术原理与实践
  • 安装及使用vscode
  • window显示驱动开发—Direct3D 11 视频播放改进
  • TDengine 中 TDgpt 用于异常检测
  • Java 笔记 transient 用法
  • 四、计算机组成原理——第3章:存储系统
  • JVM 垃圾回收机制全景解析:从对象回收到收集算法
  • 正向代理和反向代理的理解
  • 数据分析干货| 衡石科技可视化创作之仪表盘控件如何设置
  • laravel chunkById导出数据乱序问题
  • Open CV图像基本操作可莉版
  • 学习游戏制作记录(改进剑投掷状态)7.28
  • Leetcode_349.两个数组的交集
  • SPI通信协议
  • 分布式渲染效能探析:关键网络性能要素
  • 机器学习基础-matplotlib
  • linux系统----Ansible中的playbook简单应用