Docker engine shuts down after a short time WSL problems

I have the latest version of docker: Docker version 20.10.22, build 3a2c30b
Windows 11 22H2 OS Build 22621.1194
Dell XPS 15 9575 (x64)
16GB RAM
Generally more than meets Docker system requirements

This problem seems to have started after recent Docker upgrade.

Each time I start Docker, My SuSE Linux Enterprise Server 15 SP4 shuts down with exit code 1. The Docker engine starts and I can start the ‘getting-started’ container ok and connect on locahost:80 (so it’s definitely running). But then it shuts down because it’s WSL distro integration fails. If I restart it, the engine stays green (up) although the HTTP request no longer responds. I can delete the container and reinstall it if I’m lucky before it crashes again but it never stays up. Normally the Docker desktop and engine go ‘flaky’ and stop responding though.

If I choose not to restart the Linux integration service (or whatever it is), I eventually get:

Docker.Core.HttpBadResponseException:
{“message”:“1 error occurred:\n\t* starting WSL integration service: synchronising agents: starting added distros: 1 error occurred:\n\t* waiting for WSL integration for SUSE-Linux-Enterprise-Server-15-SP4: timed out while polling for WSL distro integration to become ready in "SUSE-Linux-Enterprise-Server-15-SP4"\n\n\n\n”}

at Docker.Core.GoBackend.GoBackendClient.d__19.MoveNext() in C:\workspaces\4.16.x\src\github.com\docker\pinata\win\src\Docker.Core\GoBackend\GoBackendClient.cs:line 226
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Docker.Engines.WSL2.LinuxWSL2Engine.d__11.MoveNext() in C:\workspaces\4.16.x\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\LinuxWSL2Engine.cs:line 54
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Docker.ApiServices.StateMachines.TaskExtensions.d__0.MoveNext() in C:\workspaces\4.16.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:line 29
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Docker.ApiServices.StateMachines.StartTransition.d__6.MoveNext() in C:\workspaces\4.16.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:line 91
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Docker.ApiServices.StateMachines.StartTransition.d__6.MoveNext() in C:\workspaces\4.16.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:line 118
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Docker.ApiServices.StateMachines.EngineStateMachine.d__15.MoveNext() in C:\workspaces\4.16.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\EngineStateMachine.cs:line 72
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Docker.Engines.Engines.d__23.MoveNext() in C:\workspaces\4.16.x\src\github.com\docker\pinata\win\src\Docker.Engines\Engines.cs:line 109

I have tried the following:

  1. Check hyper-V enabled (it is). Windows 11 has no option containers that I can find.
  2. Re-install SuSE Linux distro (updated to 15 via app store and uninstalled 12).
  3. Uninstall and re-install Docker desktop completely
  4. Clean / purge and restore Docker desktop to factory settings
    None work.

I have the exact same issue but with an Ubuntu distro. Started happening about a week ago. I have also tried re-installing, creating a new distribution.

This GitHub issue seems to be related: Unable to update from 4.16.2 to 4.16.3 · Issue #13203 · docker/for-win (github.com)

This seems like an issue with 4.16. I downgraded to 4.15 and everything works again. These were my steps:

  • Uninstall docker desktop
  • Delete all Docker settings from %username%\AppData
  • Reboot
  • Install Docker Desktop 4.15

Snap… Well kind of. I uninstalled the Linux distro and Docker (latest) started working again. Which makes me wonder if there’s come kind of resource conflict issue which causes them (Docker latest and Linux) to crash each other. The workaround is fine for me because I wasn’t using the Linux distro anyway. But the downgrade option is also good to know.

I also have a Dell XPS 15 running Windows 11 and I am getting much the same issue with Ubuntu distro. I have tried the steps above suggested by @joewood, but still get the same issue. I have been struggling with this for 4 full days now. I have also now submitted a support request to Docker support. Hoping they will be able to give me a solution.

Azzyknox, Did you try deleting your Ubunto distro? I also noticed once it was broken, nothing would fix it. But deleting Linux definitely worked. But hopefully Docker should be able to eventually sort the issue too.

Yes. I even tried installing Debian, just to try a different distro, and it is still not working.

Ok that’s worrying. It means my workaround might only have been a fluke. On Wednesday, I’ll install Debian and see if the problem resurfaces.

Did anyone try the docker diagnostic tool (buried in the docker directory somewhere)? From this I found that there was some corruption. If you downgrade I think it’s important that you blow away anything docker related in the appdata (local, roaming etc) to be sure none of the old Docker WSL distributions survive.
TBH - I wish docker established as release schedule more like nodejs and only bothers you to upgrade if a mature release has been battled tested and around for a while.

Ok, so my Docker is still working fine. I installed Debian from MS store and updated / upgraded it. I played around in the shell for a while with Docker running a couple of containers. Shut down Docker and restarted. All fine.

The day I got the failure and deleted SuSE Linux, I also reinstalled Docker but also ran diagnostics from the menu a few times so I’m guessing, at some point, maybe I fixed corruption without realising I even had it.

Otherwise no idea, now it’s all working alongside a Linux distro.