Fix Docker Desktop Stuck on Starting
Check virtualization, WSL, the docker-desktop distribution, the engine context and memory in the order that finds the cause fastest. After this, you can get a stuck Docker Desktop running without resetting it.
Docker Desktop shows "Starting the Docker Engine..." and never gets past it, or it opens and then reports that WSL needs an update or that virtualization is off. Almost every case is one of five things, and the checks below take a minute each. Go through them in order and stop at the first one that fails.
Wait first. The first start after an install or an update can take several minutes. If the window has said "Starting" for less than five minutes, give it time before you change anything.
1. Is virtualization turned on?
(Get-CimInstance Win32_Processor).VirtualizationFirmwareEnabled
True
False means the BIOS or UEFI has virtualization switched off, which is called Intel VT-x, AMD-V or SVM mode depending on the maker. Docker cannot start without it. Turn it on there, then restart Windows.
2. Is WSL up to date?
Docker Desktop needs WSL 2.1.5 or newer.
$env:WSL_UTF8 = 1
wsl --version | Select-Object -First 1
WSL version:
If this prints help text instead of a version number, you have the old WSL. In an administrator PowerShell run wsl --update, then restart Windows and start Docker Desktop again.
3. Does WSL know about Docker's distribution?
Docker Desktop keeps its engine in a WSL distribution called docker-desktop. While the engine is up it shows Running.
$env:WSL_UTF8 = 1
wsl -l -v | Select-String docker-desktop
docker-desktop Running 2
The last column is the WSL version, and it must be 2. If docker-desktop is missing or stays Stopped while Docker Desktop says "Starting", quit Docker Desktop from the tray menu (Quit, not close), wait ten seconds, and start it again.
⚠ Warning: Do not run wsl --shutdown without thinking about it. It stops every WSL distribution you have, including any you work in, and any unsaved work in them goes with it. If you need it, save your work first.
4. Is the engine reachable?
When Docker Desktop is healthy, the CLI can reach the engine through its context. The context name tells you which engine your terminal talks to.
docker context show
docker version --format "engine {{.Server.Version}}"
desktop-linux
engine 29.6.2
If docker context show prints something other than desktop-linux, for example a context you made for a remote machine, switch back with docker context use desktop-linux. If the engine line is missing and you see an error about a pipe, the engine is simply not running yet.
5. Does Docker Desktop have enough memory?
Open Settings with the gear icon, then Resources. On the Advanced page Docker Desktop says that you are using the WSL 2 backend and that resource limits are managed by Windows. Docker takes what WSL gives it, and WSL takes up to half of your RAM by default. You can change the limits in a .wslconfig file in your user folder. On an 8 GB machine with a browser open, that can be too little. Close what you are not using, and restart Docker Desktop.
When none of that fixes it
Use Troubleshoot in the Docker Desktop window, then "Restart" and, only if nothing else works, "Reset to factory defaults". The last one removes all your images, containers and volumes, so it is a last step, not a first one.
I could not make Docker Desktop stick on starting on my own machine, so the steps above are the usual causes from Docker's documentation, not a failure I reproduced. The commands do run, and the outputs shown are from a healthy install.
Related course: Docker for Beginners.
About
Check virtualization, WSL, the docker-desktop distribution, the engine context and memory in the order that finds the cause fastest. After this, you can get a stuck Docker Desktop running without resetting it.
- Responsible
- Christopher R
- Last Update
- 08/03/2026
- Reading Time
- 4 min
Reviews
Sign in to write a reviewComments (0)
Sign in to commentNo comments yet.