docker 的 wsl 的坑

先说解决方案是 wsl --update 在线下载 直到 安装上为止 不行 如果提示超时

就再次执行此命令 直到出现下载为止

先说解决方案是 wsl --install 在线下载 直到 安装上为止 用这个 如果提示超时 就再次执行此命令

如果太慢请从下面链接下载 不过 没有试过

参考WSL 安装似乎已损坏,无法启动_wsl安装似乎已损坏-CSDN博客

Releases · microsoft/WSL

下载一下午 下载到 95%了

重启电脑就可以使用了

------------------------------------------------------华丽丽的分割线-------------------------------------------------

问题复现!!!

Docker 提示 WSL 版本过旧完整解决步骤

报错分两层:

  1. Docker Desktop 弹窗:WSL needs updating,WSL 内核版本太低
  2. 手动运行wsl_update_x64.msi提示:This update only applies to machines with the Windows Subsystem for Linux 意思是:你的系统还没开启 / 安装 WSL 基础组件,所以单独装内核更新包会报错,要先启用系统功能,再更新内核。

第一步:以管理员身份打开 PowerShell(关键!普通 CMD 不行)

  1. 左下角开始菜单搜索 PowerShell
  2. 右键 → 以管理员身份运行

第二步:一键启用 WSL 与虚拟机平台(复制整段执行)

powershell

复制代码
wsl --install

这条命令会自动:

  • 启用「适用于 Linux 的 Windows 子系统」
  • 启用「虚拟机平台」
  • 下载安装 Ubuntu 默认发行版 执行完成后必须重启电脑

如果提示已安装过,执行这两条单独开启功能:

powershell

复制代码
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

执行完重启电脑。

好慢 下面的 方法 我试过了 一直在重启电脑中测试 不行啊

问题说明

报错 Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG = WSL 注册表组件损坏,同时在线更新网速慢是微软服务器国内下载限速导致。 下面分「提速方案」+「修复损坏 WSL」两步解决。

一、先解决下载慢(立刻提速)

当前 wsl --install 正在在线拉取内核,速度极慢,先按 CTRL + C 终止进程,改用本地离线安装包:

  1. 先下载离线 WSL2 内核(你已经有 wsl_update_x64.msi,但之前装不了是因为系统功能没开,现在先开功能)
  2. 管理员 CMD/PowerShell 依次执行两条开启系统功能命令:

cmd

复制代码
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 执行完重启电脑
  2. 重启后,双击本地 wsl_update_x64.msi 离线安装内核,不用在线慢慢下

二、修复 WSL 损坏报错 REGDB_E_CLASSNOTREG

重启完成后,管理员终端执行修复命令:

1. 注销全部旧 WSL 发行版(清理损坏残留)

powershell

复制代码
wsl --unregister ubuntu
wsl --shutdown

2. 修复系统镜像损坏文件

powershell

复制代码
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

等待两条命令跑完,修复 Windows 系统底层组件。

3. 重新完整安装 WSL(不带自动下载内核)

powershell

复制代码
wsl --install --no-distribution

这条只装 WSL 基础框架,不会自动下载内核,之后手动装你本地的 msi 包。

4. 设置默认 WSL2

powershell

复制代码
wsl --set-default-version 2

三、最后安装 Linux 发行版(Ubuntu)

powershell

复制代码
wsl --install -d Ubuntu

这条下载 Ubuntu 系统,如果还是慢,可以去微软商店手动搜 Ubuntu 安装。

四、全部完成后验证

输入:

powershell

复制代码
wsl -l -v

能看到版本 2,再打开 Docker Desktop 点 Try Again 即可正常运行。

补充:如果离线 msi 依旧提示报错

说明之前 WSL 注册表彻底损坏,执行卸载清理:

powershell

复制代码
wsl --uninstall

重启电脑后再从头执行上面的开启功能、离线安装内核流程。