Docker : Hyper-V was unable to find a virtual switch with name "DockerNAT"

hyper-v cannot create external virtual switch
failed while adding virtual ethernet switch connections
docker for windows
docker hyper-v error
docker internal virtual switch
virtual switch manager error
error virtual switch not found
docker desktop vm failed to start

I updated my docker for desktop app (Version 2.0.0.3) on Windows 10 pro.But since then my docker is not starting and throwing following error.

Hyper-V\Get-VMNetworkAdapter : Hyper-V was unable to find a virtual switch with name "DockerNAT".
At C:\Program Files\Docker\Docker\resources\MobyLinux.ps1:121 char:25
+ ... etAdapter = Hyper-V\Get-VMNetworkAdapter -ManagementOS -SwitchName $S ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (DockerNAT:String) [Get-VMNetworkAdapter], VirtualizationException
    + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.GetVMNetworkAdapter

I followed the steps mentioned in the link (Docker on windows 10 can't startup after deleting MobyLinuxVM in Hyper-V manually ) , but it did not fix the issue. I have also tried disabling --> restarting --> and then enabling Hyper V and containers option using "Turn windows feature on or off" present at "Control Panel\Programs\Programs and Features"

My network connection has following information

But still I am not being able to start my windows Docker app, which keeps throwing

Hyper-V was unable to find a virtual switch with name "DockerNAT".
at New-Switch, <No file>: line 121
at <ScriptBlock>, <No file>: line 411

I also faced this issue once.

I tried several workarounds but nothing worked. The issue was that the MobyLinuxVM could not create the Docker NAT switch, as a result Docker service could not be started.

The working solution was to reset my network settings. I cannot remember if I had to remove all network related entries in Computer Management in order to be re-initialized from scratch.

Important: You will lose all user defined network-related settings. Try it if everything else fails.

Edit: Another thing you can try is to restart the Hyper-V management service by executing the following commands in an admin shell:

net stop vmms
net start vmms

Found in related github issue

Hyper-V was unable to find a virtual switch with name , Expected behavior For Docker to actually start Actual behavior Error Unable to create: The running command stopped because the preference  In Hyper-V Manager, click on “Virtual Network Manager”. Is there the DockerNAT switch?

open the hyper-v manger and check in the "Virtual switch manager" if you can see the DockerNAT there or not , Docker for windows created this switch when it starts before creating the mobylinux vm. if your powershell script is not creating this switch ten try to create it directly there .

Docker Desktop 2.1.0.0 crashes on start - Hyper-V was , Actual behavior. An error occur when starting the Docker daemon. Error is Hyper-​V was unable to find a virtual switch with name "DockerNAT". Turn off the Hyper-V setting in Control Panel->Programs and Features ->"Turn Windows features on or off" Restart computer; After computer has been restarted, your existing docker instance will detect that your Hyper-V setting is turned off and will ask you if you want to allow docker to enable the Hyper-V feature

I was facing the same issue after updating the docker version and got resolved by doing the following steps. Please note that i have following OS running in my machine.

Edition Windows 10 Enterprise

Version 1903

Os Build 18362.295

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"

Hyper-V was unable to find a virtual switch with , Desktop 2.1.0.0 crashes on start - Hyper-V was unable to find a virtual switch with name "DockerNAT" #4462. Closed. erkist opened this issue on Aug 7, 2019​  Uninstall and re-install of docker had no effect. Unable to create: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: Hyper-V was unable to find a virtual switch with name "DockerNAT". at New-Switch, : line 131. at , : line 385.

None of these worked for me. I have tried countless of possible solutions reported by others. In the end, this rather old post helped: https://forums.docker.com/t/latest-failed-docker-update-makes-hyper-v-unable-to-create-virtual-ethernet-switch-0x80041002/44109

So to fix the issue:

  1. uninstall crippled Docker for Windows
  2. remove both Hyper-V and Containers features then reboot
  3. add Hyper-V and Containers features back then reboot
  4. reinstall Docker for Windows then start it

Hope this helps!

Docker : Hyper-V was unable to find a virtual switch with name , I have Docker version - Version 17.09.0-ce-win33 (13620) I am getting this error while starting docker Hyper-V was unable to find a virtual  But still I am not being able to start my windows Docker app, which keeps throwing . Hyper-V was unable to find a virtual switch with name "DockerNAT". at New-Switch, <No file>: line 121 at <ScriptBlock>, <No file>: line 411 Source: StackOverflow

Running the MOFCOMP command and a reboot fixed this problem for me.

  1. Running this command: (Command Prompt as administrator) MOFCOMP %SYSTEMROOT%\System32\WindowsVirtualization.V2.mof

  2. Then restart

(https://community.spiceworks.com/how_to/122307-fix-error-managing-hyper-v-server-2012-r2-from-windows-10)

Hyper-V was unable to find a virtual switch with name "DockerNAT , I also faced this issue once. I tried several workarounds but nothing worked. The issue was that the MobyLinuxVM could not create the Docker  Docker Desktop pop up window displays error message: Hyper-V was unable to find a virtual switch with name "DockerNAT".

[Q] MobyLinux is not installed when trying to install Docker on , I also spent days trying to install and get Docker working correctly on Windows. It turned out that the company's antivirus had rules to block the  Unable to create - The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: Hyper-V was unable to find a virtual switch with name "DockerNAT".

Docker Desktop 2.1.0.0 crashes on start - Hyper-V was , parameter is set to Stop: Hyper-V was unable to find a virtual switch with name "DockerNAT". After this I checked the Hyper-V maganger and I saw that there is  Same issue as #324, but I don't have any VPN software installed. I did at one point, but I've removed all of it, rebooted my computer several times, completely removed docker, disabled Hyper-V and started from scratch, and yet the issue

Developers, on start - Hyper-V was unable to find a virtual switch with name "DockerNAT". <​!-- Please, check https://docs.docker.com/docker-for-windows/troubleshoot/. An error occur when starting the Docker daemon. Error is Hyper-V was unable to find a virtual switch with name "DockerNAT".

Comments
  • Tried what you suggested i.e even removing all the network configs, still getting the same error. "Unable to create: The running command stopped because the preference variable \n "ErrorActionPreference" or common parameter is set to Stop: Hyper-V was unable to find a virtual switch with name "DockerNAT". at New-Switch, <No file>: line 121 at <ScriptBlock>, <No file>: line 411"
  • Did you also delete the network adapter entries in Computer Management->Device Manager->Network Adapters?
  • No, do I need to.
  • @sumitkumar I have updated my answer, please give it a try if issue is still present.
  • thanks @leopal for the new approach, but even that doesn't seem to help.
  • Please note that Container is a separate feature from Hyper-V.