Docker Desktop stuck on 'starting' is not one problem - it is five problems wearing the same coat. This ladder checks them in the order of how often each one is guilty, from the BIOS switch to the Windows group most people never hear of.
Resist the urge to reinstall. A stuck Docker Desktop almost always traces to one rung of this ladder, and reinstalling fixes none of them - it just costs you twenty minutes and your settings. Work from rung 1 down, test after each, and stop when it starts. Every rung here is a documented requirement of the WSL 2 backend, not folklore.
Docker's engine lives inside WSL 2, so a sick WSL means a stuck Docker.
wsl --status - it should answer cleanly with a default version of 2wsl -l -v - your distro must show VERSION 2, and opening the distro by name should reach a Linux prompt. A distro that never finished its first run (no Linux user created) blocks everything behind itwsl --update to refresh the kernel - the 'WSL 2 installation is incomplete' error is precisely this rung, and the fix is the kernel update package or wsl --update, not a Docker reinstallwsl --shutdown, wait ten seconds, and start Docker again before trying anything harsherservices.msc. Docker Desktop Service should exist and be able to start; the WSL Service (LxssManager) should be running. A service stuck stopped after an unclean shutdown often just needs a manual Startnet localgroup docker-users in a terminal - your account must be listed. Docker Desktop adds you at install time, but a failed install or a domain policy can leave you out. If you are missing, an administrator can add you with net localgroup docker-users YourName /addThe classic permission error - access denied on the Docker pipe - is this rung introducing itself.
Only with the ladder below you clean: reinstall Docker Desktop from docker.com (your images and containers live in the WSL data, and a normal reinstall keeps them - but export anything irreplaceable first, because 'normally' is doing real work in that sentence).
Two honest extras: corporate antivirus and endpoint tools do occasionally block the engine's virtual network - if this is an office PC and every rung passes, that is an IT ticket with real evidence behind it, not a you problem. And if Docker ran yesterday and broke today, ask what changed: Windows updates and WSL kernel updates are the usual suspects, and rung 3 fixes most of those.
If your Docker has never started at all, go back to the video install and this ladder together - screen in one hand, checklist in the other.
▶️ Watch Full VideoThe WSL 2 kernel is missing or too old. Run wsl --update from an administrator terminal, or install Microsoft's WSL 2 kernel update package, restart, and start Docker again. It is a Windows-side gap, not a Docker fault, and reinstalling Docker will not close it.
Your account is not active in the docker-users group, or you have not signed out since being added. Check membership with net localgroup docker-users, get an admin to add you if needed, then sign fully out of Windows and back in - a lock or sleep is not enough.
Usually a Windows update, a WSL kernel change, or an unclean shutdown that left services stopped. Run wsl --update, check services.msc for the Docker Desktop Service and WSL Service, and try wsl --shutdown followed by a fresh Docker start before considering a reinstall.