Fixing "Docker Desktop Starting..." Forever on Windows
When Docker Desktop gets stuck on "Starting..." on Windows, it's often related to underlying WSL (Windows Subsystem for Linux) components or system services. This article provides comprehensive solutions for resolving this common issue.
Problem Overview
Docker Desktop for Windows relies on WSL2 as its backend on modern Windows systems. When the "Docker Desktop Starting..." message persists indefinitely, it typically indicates one of these underlying issues:
- WSL2 kernel not properly installed or outdated
- LxssManager service problems
- Trusted Installer (TiWorker.exe) conflicts
- System virtualization features not enabled
- Corrupted Docker or WSL distributions
Recommended Solutions
1. Update WSL Kernel (Most Common Fix)
The WSL2 kernel sometimes doesn't install automatically during Docker setup. This is the most reliable first step:
wsl --update
After running this command, restart Docker Desktop and wait 1-2 minutes for initialization.
INFO
As of Docker Desktop v4.22+, this issue should be detected automatically, but manual intervention may still be required.
2. Reset Docker WSL Distributions
If updating doesn't work, try resetting the Docker-specific WSL distributions:
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
Then restart Docker Desktop. This will reset Docker's WSL environment but preserve your images and containers.
3. Install a WSL Distribution
Sometimes Docker needs a full Linux distribution to function properly:
wsl --install -d Ubuntu
Alternatively, specify a specific version:
wsl.exe --install Ubuntu-20.04
After installation, update the distribution:
sudo apt update
4. Address LxssManager Service Issues
The LxssManager service can sometimes hang, preventing both WSL and Docker from starting:
# Find LxssManager PID
sc queryex LxssManager
# Force terminate the process (replace XXXXX with actual PID)
wmic process where ProcessID=XXXXX delete
# Restart the service
net start LxssManager
You may need to repeat this process if the service doesn't start correctly on the first attempt.
5. Check Trusted Installer Service
Some users report that the Trusted Installer Worker (TiWorker.exe) can interfere with Docker startup:
- Open Task Manager
- Stop
TiWorker
in the Processes tab - Restart "Trusted Installer" in the Services tab
- Try starting Docker Desktop again
Additional Troubleshooting Steps
Enable Required Windows Features
Ensure these features are enabled in "Turn Windows features on or off":
- Windows Hypervisor Platform
- Virtual Machine Platform
- Windows Subsystem for Linux
Check BIOS Virtualization Settings
Enable virtualization support in your BIOS/UEFI settings:
- Look for SVM (Support Vector Machine) or VT-x/VT-d options
- Ensure hardware virtualization is enabled
Clean Temporary Files
Clear system temp files that might be causing conflicts:
C:\Windows\Temp
C:\Users\{yourAccountName}\AppData\Local\Temp
C:\Windows\Prefetch
Complete Reinstallation Process
If other methods fail, perform a clean reinstall:
- Uninstall Docker Desktop
- Remove remaining folders:
AppData/Roaming/Docker Desktop
AppData/Local/Docker
- Restart your computer
- Install the latest Docker Desktop version
- Run as Administrator if issues persist
WARNING
When reinstalling, consider not selecting the WSL option during installation if you've experienced recurring issues, then manually configure WSL afterward.
Prevention and Best Practices
- Wait for full startup: Don't launch other development tools (like VS Code) until Docker has completely started
- Regular updates: Keep both Docker Desktop and WSL updated
- Adequate resources: Ensure your system has sufficient RAM (at least 8GB recommended)
- Check firewall settings: Allow Docker-related executables through Windows Firewall
When to Seek Further Help
If none of these solutions work, consider:
- Checking Docker logs at
%USERPROFILE%\AppData\Local\Docker
- Searching for specific error messages in Event Viewer
- Consulting Docker's official Windows troubleshooting documentation
Most "Docker Desktop Starting..." forever issues can be resolved through WSL management and system service troubleshooting. The wsl --update
command resolves the majority of cases, with the other solutions addressing less common underlying issues.