Docker Desktop 在 Windows 上无限显示"正在启动"的解决方案
问题描述
在 Windows 系统上安装 Docker Desktop 后,应用程序界面持续显示"Docker Desktop Starting..."但始终无法完成启动过程。这是一个常见问题,通常与 Windows 子系统 for Linux (WSL2) 相关,也可能由系统服务、网络配置或权限问题引起。
主要解决方案
1. 更新 WSL2 内核(最常用解决方案)
这是最常见且有效的解决方案,因为 Docker Desktop 依赖 WSL2 但有时不会自动安装或更新所需内核。
wsl --update
wsl --update
执行此命令后,重启 Docker Desktop 并等待 1-2 分钟让其完成初始化过程。
TIP
Docker Desktop v4.22+ 版本已改进此问题,会在首次运行时检测并提示需要更新 WSL 内核。
2. 重新注册 WSL 发行版
如果更新 WSL 无效,可以尝试重新注册 Docker 相关的 WSL 发行版:
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
执行后重新启动 Docker Desktop。注意:这会清除当前的 Docker 数据,但镜像和容器通常会保留。
3. 安装 Ubuntu WSL2 发行版
确保已安装一个 WSL2 Linux 发行版:
wsl --install -d Ubuntu
安装完成后,在 Ubuntu 中运行更新:
sudo apt update && sudo apt upgrade
其他有效解决方案
4. 清理临时文件
删除系统临时文件可能解决某些冲突问题:
C:\Windows\Temp
C:\Users\{用户名}\AppData\Local\Temp
C:\Windows\Prefetch
然后重新安装 Docker Desktop。
5. 检查 Trusted Installer 服务
某些情况下 Windows Trusted Installer Worker (TiWorker.exe) 可能导致问题:
- 打开任务管理器
- 在"进程"标签页中结束 TiWorker 进程
- 在"服务"标签页中重启 Trusted Installer 服务
6. 重启 LxssManager 服务
WSL 的核心服务可能出现卡死状态:
# 查询服务PID
sc queryex LxssManager
# 使用获取的PID终止进程(XXXXX替换为实际PID)
wmic process where ProcessID=XXXXX delete
# 重新启动服务
net start LxssManager
可能需要重复此过程多次才能生效。
7. 启用必要的 Windows 功能
确保以下功能已启用:
Windows 功能对话框中启用:
- Windows 子系统 for Linux
- Windows Hypervisor Platform
- 虚拟机平台
BIOS/UEFI 中启用虚拟化支持(通常称为 SVM、Intel VT-x 或 AMD-V)
8. 以管理员身份运行
始终以管理员权限运行 Docker Desktop,这可以解决许多权限相关的问题。
预防措施
- 按顺序启动:确保 Docker Desktop 完全启动后再启动其他开发工具(如 VS Code、PyCharm)
- 检查环境变量:确保
PATH
中包含C:\WINDOWS\system32
- 防火墙设置:允许 Docker 相关程序通过防火墙
- 定期更新:保持 Docker Desktop 和 WSL2 为最新版本
总结
Docker Desktop 在 Windows 上启动卡住的问题主要与 WSL2 相关。按照以下优先级尝试解决方案:
- 运行
wsl --update
- 重新注册 WSL 发行版
- 安装 Ubuntu WSL2 发行版
- 检查并重启相关服务
大多数情况下,前两种方法即可解决问题。如果问题依然存在,可以考虑完全卸载 Docker Desktop 和 WSL2 后重新安装。