You click the Docker Desktop icon, the whale spins for a second, and then a red box pops up: The specified service does not exist as an installed service. This usually happens right after a Windows update, a WSL2 kernel update, or when you've switched between WSL1 and WSL2 distros. I've seen it on Windows 10 21H2 and Windows 11 22H2, often after a reboot that wasn't clean.
The root cause is simple: Docker Desktop depends on WSL2 to run the Linux engine. When WSL2's internal services get tangled—say the WSL service or the LxssManager service didn't start properly, or the distro registration is corrupt—Windows can't find the service Docker is asking for. It's not a Docker bug, it's a WSL2 state problem.
The good news? You don't need to reinstall Docker or Windows. The fix is resetting WSL2, and it's a ten-minute job. Here's what I do every time this shows up.
The Reset: Step by Step
Before we start, back up any Docker volumes or data you care about. This reset will shut down all WSL2 distros, but it won't delete them. Still, better safe.
- Close Docker Desktop completely. Right-click the whale in the system tray and select Quit. If it's frozen, kill it in Task Manager.
- Open PowerShell as Administrator. Hit Start, type "PowerShell", right-click and choose "Run as administrator".
- Shut down WSL2 by running:
wsl --shutdown
This stops the WSL2 lightweight VM. Wait about 30 seconds—give the VM time to fully tear down.
- Check the WSL status. Run:
wsl --status
If it says "Default Version: 2" and lists a distro, you're good. If it throws an error like "The service has not been started", skip to step 6.
- Restart the WSL service (this is often the actual fix). In the same PowerShell window, run:
net stop LxssManager
net start LxssManager
You might see "The service name is invalid" here—that's the exact error Docker is hitting. If so, the service registration is broken, and that's where the reset gets serious.
- Unregister and re-register WSL2. This resets the WSL2 kernel and service registration without touching your distros. Run:
wsl --update
wsl --shutdown
The --update flag forces a reinstall of the WSL2 kernel from Microsoft's servers. If you're offline, it'll fail, so make sure you have internet.
- Set WSL2 as the default version (in case a Windows update reverted it):
wsl --set-default-version 2
- Restart Docker Desktop. Start it from the Start menu. Give it a minute—the first start after a WSL2 reset takes longer because it rebuilds the engine.
That's it for the usual case. After step 8, Docker should boot and your containers should show up like nothing happened.
If It Still Fails
Sometimes the reset isn't enough. Here's what I check next, in this order:
- Check the Windows services. Press
Win + R, typeservices.msc, and find "LxssManager" and "WSL Service". Both should be Running. If not, right-click and Start them manually. - Verify WSL2 is actually installed. Run
wsl --list --verbose. If it says "No installed distributions", you might have a distro that's unregistered. You can re-register it withwsl --install -d Ubuntu, but only if you don't have critical data in that distro. - Disable Hyper-V and re-enable it. Open "Windows Features" (search for it), uncheck "Windows Hypervisor Platform" and "Virtual Machine Platform", reboot, then re-enable both. This fixes deeper virtualization conflicts that WSL2 sometimes trips over after a Windows update.
- Check Docker's settings. In Docker Desktop, go to Settings → Resources → WSL Integration. Make sure the "Enable integration with my default WSL distro" is on and that your distro is listed. If it's not, toggle the checkbox and Apply.
Honestly, 9 times out of 10, the wsl --update plus wsl --shutdown combo does the trick. The error message is scary, but it's just Windows saying "I can't find the WSL service"—and once you reset WSL2, the service is back where Docker expects it.
One last note: if you're on Windows Server, skip this fix entirely. That error on Server usually means the WSL feature isn't installed at all—you'd need to enable it via PowerShell with Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux first.
Try the reset, and let me know if it gets you back up. It's saved me more than a few lunch breaks.