升级Windows后Docker Desktop卡在“Starting the Docker engine”或报“Virtualization support not detected”,主因是系统更新重置了BIOS虚拟化开关、WSL2版本降级、Hyper-V/虚拟机平台功能被禁用、WSL2内核过旧(需≥5.15.133.1)或配置损坏;须依次验证并修复:1.确认BIOS中VT-x/SVM已启用;2.运行wsl --list --verbose检查docker-desktop及docker-desktop-data版本是否均为2,否则执行wsl --set-version;3.通过optionalfeatures.exe确保Hyper-V、虚拟机平台、WSL已启用并重启;4.执行wsl --update --web-download更新内核,或手动安装最新wsl_update_x64.msi;5.退出Docker后重命名%APPDATA%\Docker为备份,让其重建配置。

升级 Windows 后 Docker Desktop 突然卡在 Starting the Docker engine 或直接报 Virtualization support not detected,大概率不是 Docker 坏了,而是系统更新重置了底层虚拟化开关或 WSL2 状态——尤其常见于 Windows 10 22H2 升级到 23H2、或 Windows 11 22H2 升级到 23H2/24H2 后。
检查 WSL2 是否被降级回 WSL1
Windows 系统更新有时会把已设为 VERSION 2 的发行版悄悄切回 VERSION 1,Docker Desktop 4.55+ 默认拒绝启动。
- 以普通用户身份打开 PowerShell,运行
wsl --list --verbose - 确认你用于 Docker 的发行版(通常是
docker-desktop和docker-desktop-data)的 VERSION 列是否都为2 - 如果其中任一为
1,执行:wsl --set-version docker-desktop 2和wsl --set-version docker-desktop-data 2 - 若提示“无法定位发行版”,说明 WSL2 数据目录损坏,需清理:
%LOCALAPPDATA%\Docker\wsl\data\和%LOCALAPPDATA%\Docker\wsl\distro\下全部内容(Docker Desktop 必须已完全退出)
验证 Hyper-V 和虚拟机平台是否仍启用
系统更新可能重置 Windows 功能开关,尤其是家庭版用户通过脚本开启的 Hyper-V,极易在更新后失效。
- 运行
optionalfeatures.exe,确认以下两项仍勾选:Hyper-V、虚拟机平台、Windows 子系统 Linux - 若任一未勾选,勾选后点击确定 → 必须重启,否则不生效
- 重启后运行
dism /online /get-features | findstr "Microsoft-Hyper-V Containers",确保输出中State为Enabled - 家庭版用户若发现 Hyper-V 灰显不可选,不要硬改注册表绕过;应优先运行微软官方
Enable-WindowsOptionalFeature脚本(需管理员权限)
排查 WSL2 内核版本与 Docker 不兼容
Docker Desktop 4.55+ 强制要求 WSL2 内核 ≥ 5.15.133.1,而 Windows 自动更新有时只升系统不升 WSL 内核。
- 运行
wsl --update --web-download(加--web-download是关键,避免用本地缓存旧包) - 更新完成后,重启所有 WSL 发行版:
wsl --shutdown,再启动 Docker Desktop - 若仍失败,手动下载最新内核:访问 https://www.php.cn/link/66b66ff37e743903d1d1137a66048c4b,下载
wsl_update_x64.msi安装 - 验证内核版本:
wsl -d docker-desktop -- uname -r,输出应 ≥5.15.133.1
跳过自动初始化,强制重载配置
系统更新后,Docker Desktop 的 settings.json 可能残留旧路径或冲突参数,导致启动时无限等待。
- 完全退出 Docker Desktop(右键托盘图标 → Quit Docker Desktop)
- 重命名配置目录:
%APPDATA%\Docker→%APPDATA%\Docker.bak - 重新启动 Docker Desktop,它会生成全新配置;若能启动,再手动迁移必要设置(如镜像仓库、代理)
- 注意:
%LOCALAPPDATA%\Docker\wsl\下的镜像和容器默认保留,无需担心丢失
最易被忽略的是 WSL2 内核更新必须带 --web-download 参数——本地缓存的内核包往往滞后两个大版本,光跑 wsl --update 不够。系统更新后别急着重装 Docker,先盯住 WSL2 的状态和内核版本。











