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.

I am having similar issues as described by you all. Are any of you using the free version of Docker Desktop and/or do you know whether these types of issues only apply to the free version?

There is only one Docker Desktop for Windows. The distinction is bound to the dockerid you use to login.

Corporate environments can be quite challenging for Docker Desktop:

  • routes required for communication between host and wsl distro sometimes are overridden by the route tables pushed from vpn connections
  • http proxies require authentication (not sure if this really is a problem)
  • TLS inspection terminates the security context for https connections and establish a new one having the response using a different certificate than expected
  • Forced Windows updates can break the WSL integration and require WSL updates

Docker is not in control about the security measures of the company, and it is impossible to anticipate everything that security gurus can come up with.

Thank you @meyay for all of this information. You have given me some new ideas to look into for resolving the issues I am experiencing.

I’m still having this problem where. Docker continues to run in Windows and seems unaffected. But, in WSL it will exit pretty regularly. There are 53G dedicated to WSL and I’m only starting and stopping a MySQL container for testing. My Docker version is Docker Desktop 4.25.0 (126437). I’m running Ubuntu 22.04.3 LTS in Windows 11 WSL.

Any ideas of what I should look at? I’m not sure how to resolve this.

This is what’s in syslog:

  Nov  8 12:31:18 SCOTT-P16 kernel: [11870.632582] docker0: port 1(vetha9b5ffe) entered blocking state
  Nov  8 12:31:18 SCOTT-P16 kernel: [11870.632584] docker0: port 1(vetha9b5ffe) entered disabled state
  Nov  8 12:31:18 SCOTT-P16 kernel: [11870.632605] device vetha9b5ffe entered promiscuous mode
  Nov  8 12:31:18 SCOTT-P16 kernel: [11870.632639] docker0: port 1(vetha9b5ffe) entered blocking state
  Nov  8 12:31:18 SCOTT-P16 kernel: [11870.632640] docker0: port 1(vetha9b5ffe) entered forwarding state
  Nov  8 12:31:18 SCOTT-P16 kernel: [11870.632896] docker0: port 1(vetha9b5ffe) entered disabled state
  Nov  8 12:31:19 SCOTT-P16 kernel: [11870.788432] eth0: renamed from veth5eaa69f
  Nov  8 12:31:19 SCOTT-P16 kernel: [11870.827901] IPv6: ADDRCONF(NETDEV_CHANGE): vetha9b5ffe: link becomes ready
  Nov  8 12:31:19 SCOTT-P16 kernel: [11870.827949] docker0: port 1(vetha9b5ffe) entered blocking state
  Nov  8 12:31:19 SCOTT-P16 kernel: [11870.827954] docker0: port 1(vetha9b5ffe) entered forwarding state
  Nov  8 12:31:19 SCOTT-P16 kernel: [11870.827996] IPv6: ADDRCONF(NETDEV_CHANGE): docker0: link becomes ready
  Nov  8 12:31:19 SCOTT-P16 kernel: [11870.864868] docker0: port 1(vetha9b5ffe) entered disabled state
  Nov  8 12:31:19 SCOTT-P16 kernel: [11870.864892] veth5eaa69f: renamed from eth0
  Nov  8 12:31:19 SCOTT-P16 kernel: [11870.972748] docker0: port 1(vetha9b5ffe) entered disabled state
  Nov  8 12:31:19 SCOTT-P16 kernel: [11870.972835] device vetha9b5ffe left promiscuous mode
  Nov  8 12:31:19 SCOTT-P16 kernel: [11870.972836] docker0: port 1(vetha9b5ffe) entered disabled state
  Nov  8 12:31:43 SCOTT-P16 systemd-resolved[116]: Clock change detected. Flushing caches.
  Nov  8 12:32:09 SCOTT-P16 kernel: [11921.684915] docker0: port 1(veth309f283) entered blocking state
  Nov  8 12:32:09 SCOTT-P16 kernel: [11921.684919] docker0: port 1(veth309f283) entered disabled state
  Nov  8 12:32:09 SCOTT-P16 kernel: [11921.684966] device veth309f283 entered promiscuous mode
  Nov  8 12:32:10 SCOTT-P16 kernel: [11921.868288] eth0: renamed from veth1f0b13d
  Nov  8 12:32:10 SCOTT-P16 kernel: [11921.908205] IPv6: ADDRCONF(NETDEV_CHANGE): veth309f283: link becomes ready
  Nov  8 12:32:10 SCOTT-P16 kernel: [11921.908244] docker0: port 1(veth309f283) entered blocking state
  Nov  8 12:32:10 SCOTT-P16 kernel: [11921.908248] docker0: port 1(veth309f283) entered forwarding state
  Nov  8 12:32:10 SCOTT-P16 kernel: [11922.059220] docker0: port 2(vethabaa24d) entered blocking state
  Nov  8 12:32:10 SCOTT-P16 kernel: [11922.059223] docker0: port 2(vethabaa24d) entered disabled state
  Nov  8 12:32:10 SCOTT-P16 kernel: [11922.059241] device vethabaa24d entered promiscuous mode
  Nov  8 12:32:10 SCOTT-P16 kernel: [11922.059275] docker0: port 2(vethabaa24d) entered blocking state
  Nov  8 12:32:10 SCOTT-P16 kernel: [11922.059276] docker0: port 2(vethabaa24d) entered forwarding state
  Nov  8 12:32:10 SCOTT-P16 kernel: [11922.248341] eth0: renamed from veth8b1c578
  Nov  8 12:32:10 SCOTT-P16 kernel: [11922.307550] IPv6: ADDRCONF(NETDEV_CHANGE): vethabaa24d: link becomes ready
  ...
  Nov  8 12:32:13 SCOTT-P16 systemd-resolved[116]: Clock change detected. Flushing caches.
  Nov  8 12:33:34 SCOTT-P16 kernel: [12005.968509] docker0: port 2(vethabaa24d) entered disabled state
  Nov  8 12:33:34 SCOTT-P16 kernel: [12005.968536] veth8b1c578: renamed from eth0
  Nov  8 12:33:34 SCOTT-P16 kernel: [12006.074839] docker0: port 2(vethabaa24d) entered disabled state
  Nov  8 12:33:34 SCOTT-P16 kernel: [12006.075027] device vethabaa24d left promiscuous mode
  Nov  8 12:33:34 SCOTT-P16 kernel: [12006.075045] docker0: port 2(vethabaa24d) entered disabled state
  Nov  8 12:33:34 SCOTT-P16 kernel: [12006.263437] docker0: port 1(veth309f283) entered disabled state
  Nov  8 12:33:34 SCOTT-P16 kernel: [12006.263463] veth1f0b13d: renamed from eth0
  Nov  8 12:33:34 SCOTT-P16 kernel: [12006.482666] docker0: port 1(veth309f283) entered disabled state
  Nov  8 12:33:34 SCOTT-P16 kernel: [12006.482758] device veth309f283 left promiscuous mode
  Nov  8 12:33:34 SCOTT-P16 kernel: [12006.482759] docker0: port 1(veth309f283) entered disabled state
  Nov  8 12:35:43 SCOTT-P16 kernel: [12134.982439] docker0: port 1(vethb9259d8) entered blocking state
  Nov  8 12:35:43 SCOTT-P16 kernel: [12134.982442] docker0: port 1(vethb9259d8) entered disabled state
  Nov  8 12:35:43 SCOTT-P16 kernel: [12134.982466] device vethb9259d8 entered promiscuous mode
  Nov  8 12:35:43 SCOTT-P16 kernel: [12135.157198] eth0: renamed from veth6810289
  Nov  8 12:35:43 SCOTT-P16 kernel: [12135.247284] IPv6: ADDRCONF(NETDEV_CHANGE): vethb9259d8: link becomes ready
  Nov  8 12:35:43 SCOTT-P16 kernel: [12135.247304] docker0: port 1(vethb9259d8) entered blocking state
  Nov  8 12:35:43 SCOTT-P16 kernel: [12135.247306] docker0: port 1(vethb9259d8) entered forwarding state
  Nov  8 12:35:43 SCOTT-P16 kernel: [12135.388553] docker0: port 2(veth213ebcb) entered blocking state
  Nov  8 12:35:43 SCOTT-P16 kernel: [12135.388556] docker0: port 2(veth213ebcb) entered disabled state
  Nov  8 12:35:43 SCOTT-P16 kernel: [12135.388578] device veth213ebcb entered promiscuous mode
  Nov  8 12:35:43 SCOTT-P16 kernel: [12135.388614] docker0: port 2(veth213ebcb) entered blocking state
  Nov  8 12:35:43 SCOTT-P16 kernel: [12135.388615] docker0: port 2(veth213ebcb) entered forwarding state
  Nov  8 12:35:43 SCOTT-P16 kernel: [12135.537099] eth0: renamed from veth908f77d
  Nov  8 12:35:43 SCOTT-P16 kernel: [12135.597555] IPv6: ADDRCONF(NETDEV_CHANGE): veth213ebcb: link becomes ready