Skip to main content

Troubleshooting "BackendDestroyException" in Docker


Setting up Docker in Windows environment is not an easy task. I have seen many people (including me) struggling to get it run on Windows PC.

I have installed 'Docker for Desktop' in my laptop which has Windows 10 Pro 64-bit, Version 1909 (OS Build 18363.720). It was running fine with Windows containers. However, when I needed to switch to Linux container, it crashed with below error:

Docker.Core.Backend.BackendDestroyException:
Unable to stop Hyper-V VM: Service 'Hyper-V Host Compute Service (vmcompute)' cannot be started due to the following error: Cannot start service vmcompute on computer '.'.
at Enable-MobyLinuxRequiredService, <No file>: line 103
at <ScriptBlock>, <No file>: line 804
   at Docker.Core.Pipe.NamedPipeClient.<TrySendAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters)
   at Docker.Actions.<>c__DisplayClass39_0.<SwitchDaemon>b__0()
   at Docker.ApiServices.TaskQueuing.TaskQueue.<>c__DisplayClass18_0.<.ctor>b__1(


Re-installing Docker or restarting Windows didn't help. After trying many online suggestions, finally I managed to fix this issue by following these steps:

1, Open "Window Security"
2, Open "App & Browser control"
3, Click "Exploit protection settings" at the bottom
4, Switch to "Program settings" tab
5, Locate "C:\WINDOWS\System32\vmcompute.exe" in the list and expand it
6, Click "Edit"
7, Scroll down to "Code flow guard (CFG)" and uncheck 
   "Override system settings"
8, Start vmcompute from powershell "net start vmcompute"  
 
After this, when I started Docker again, it worked like a charm!

Comments

Popular posts from this blog

Solving PyCharm bug: "Python helpers are not copied yet..."

I have been using PyCharm Professional to run and debug Python code from my Windows machine to a remote Linux device. There are some other tools available for the same purpose (e.g. Python Tool for Visual Studio 2017). But in my opinion, PyCharm Professional stands out among its counterparts as it comes with a "All Batteries Included" setup. Once you configure remote Python interpreter in PyCharm, then it works out of the box. However, today after upgrading to PyCharm Professional 2018.2.1, I could not run my Python script on remote device. The execution always failed with below error - "Error running 'hello': Python helpers are not copied yet to the remote host. Please wait until remote interpreter initialization finishes." To solve this issue, I had to remove the ".pycharm_helpers " folder from the remove device and then restart PyCharm so that the folder is re-created and files are copied again. Here are the steps with comma...

Threading tutorials from Microsoft

Do you know what’s lurking in the deepest, darkest parts of your thread pool? Take control of that monster and keep your applications responsive by becoming a threading expert with this free 5-part course. Advanced .NET Threading , Part 1: Thread fundamentals Advanced .NET Threading , Part 2: Compute-bound async operations Advanced .NET Threading , Part 3: I/O-bound async operations Advanced .NET Threading , Part 4: Thread synchronization primitives Advanced .NET Threading , Part 5: Thread synchronization locks

32 bit and 64 bit system files in Windows

The windows operating system stores both 32 bit and 64 bit system files under seperate folders.  Because 64 bit OS needs to be able to run 32 bit programs without confusing them with new paths, some paths are redirected to different folders depending on whether a 32 bit or 64 bit application looks at them. The same applies to some registry keys.  Basically, if you open explorer (which is a 64 bit program), you will see these folders: C:\Windows\System32 << your 64 bit system folder C:\Windows\SysWOW64 << your 32 bit system folder (Yes, the numbers appear to be exactly the other way round, looks like someone at Microsoft was trying to be funny!) However: When a 32 bit program, such as Atom, looks at your Windows folder, it will see these folders instead: C:\Windows\System32 << your 32 bit system folder ( !!! ) C:\Windows\Sysnative << your 64 bit system folder This ensures that under the path C:\Windows\System32 , all a...