[solved] Docker fail to initialize after updating to Windows 10 insider build 14342

Expected behavior

White whale icon
Initialize properly.

Actual behavior

Red whale icon
Docker fail to initialize with Failed to create Switch “DockerNAT”: No MSFT_NetAdapter objects

Information

  • the output of:

Steps to reproduce the behavior

[19:06:41.454][Program ][Info ] Starting on: 5/11/2016 7:06:41 PM
[19:06:41.454][Program ][Info ] Resources: C:\Program Files\Docker\Docker\Resources
[19:06:41.470][Program ][Info ] OS: Windows 10 Pro Insider Preview
[19:06:41.470][Program ][Info ] Edition: Professional
[19:06:41.470][Program ][Info ] Id: 1511
[19:06:41.470][Program ][Info ] Build: 14342
[19:06:41.470][Program ][Info ] BuildLabName: 14342.1000.amd64fre.rs1_release.160506-1708
[19:06:41.470][Program ][Info ] Mixpanel Id: 16375be8-a558-4c2c-b96d-88d3fb70cbaf
[19:06:41.485][Program ][Info ] Sha1: b0bc231ec0337a84cc1ce50f51df77f9b0f5c993
[19:06:41.485][Program ][Info ] You can send feedback, including this log file, at https://forums.docker.com/c/docker-for-windows
[19:06:41.601][Mixpanel ][Info ] Tracking: appLaunched
[19:06:41.917][Mixpanel ][Info ] Tracking: heartbeat
[19:06:41.917][BackendServer ][Info ] Started
[19:06:41.971][NamedPipeClient][Info ] Sending Version()…
[19:06:41.971][NamedPipeServer][Info ] Version()
[19:06:41.971][NamedPipeServer][Info ] Version done.
[19:06:41.986][NamedPipeClient][Info ] Received response for Version: Version 1.11.1-beta11 (build: 2789)
[19:06:41.986][NamedPipeClient][Info ] Sending CheckInstallation()…
[19:06:41.986][NamedPipeServer][Info ] CheckInstallation()
[19:06:41.986][HyperV ][Info ] Check Hyper-V Windows optional feature
[19:06:41.986][PowerShell ][Info ] Run script…
[19:06:42.656][HyperV ][Info ] Hyper-V Windows feature is enabled
[19:06:42.656][NamedPipeServer][Info ] CheckInstallation done.
[19:06:42.656][NamedPipeClient][Info ] Received response for CheckInstallation:
[19:06:42.672][NamedPipeClient][Info ] Sending CheckHyperVState()…
[19:06:42.672][NamedPipeServer][Info ] CheckHyperVState()
[19:06:42.672][HyperV ][Info ] Check Hyper-V Service State
[19:06:42.672][PowerShell ][Info ] Run script with parameters: -Check True…
[19:06:45.337][HyperV ][Info ] Hyper-V is running and responding
[19:06:45.337][HyperV ][Info ] Hyper-V is running
[19:06:45.337][NamedPipeServer][Info ] CheckHyperVState done.
[19:06:45.337][NamedPipeClient][Info ] Received response for CheckHyperVState:
[19:06:45.422][Authentication ][Info ] Checking token
[19:06:45.459][Authentication ][Info ] Token is valid
[19:06:45.560][Updater ][Info ] Checking for updates on the Beta channel…
[19:06:45.560][Notifications ][Info ] Docker is Initializing…
[19:06:45.575][NamedPipeClient][Info ] Sending Stop()…
[19:06:45.591][NamedPipeServer][Info ] Stop()
[19:06:45.591][HyperV ][Info ] Stop
[19:06:45.591][PowerShell ][Info ] Run script with parameters: -Stop True…
[19:06:45.722][HyperV ][Info ] VM MobyLinuxVM does not exist
[19:06:45.722][Firewall ][Info ] Closing ports…
[19:06:45.722][PowerShell ][Info ] Run script…
[19:06:46.638][Firewall ][Info ] Ports are closed
[19:06:46.641][NamedPipeServer][Info ] Stop done.
[19:06:46.643][NamedPipeClient][Info ] Received response for Stop:
[19:06:46.647][NamedPipeClient][Info ] Sending Start(2, 2048)…
[19:06:46.649][NamedPipeServer][Info ] Start(2, 2048)
[19:06:46.653][Firewall ][Info ] Opening ports for C:\Program Files\Docker\Docker\Resources\com.docker.proxy.exe and C:\Program Files\Docker\Docker\DockerForWindows.exe…
[19:06:46.656][PowerShell ][Info ] Run script…
[19:06:47.079][Updater ][Info ] Found remote version. Version = 1.11.1.2789
[19:06:47.082][Updater ][Info ] Local version is up to date.
[19:06:47.086][Updater ][Info ] Check for update done.
[19:06:47.617][Firewall ][Info ] Ports are opened
[19:06:47.620][HyperV ][Info ] Create
[19:06:47.623][PowerShell ][Info ] Run script with parameters: -Create True -CPUs 2 -Memory 2048 -IsoFile C:\Program Files\Docker\Docker\Resources\mobylinux.iso…
[19:06:47.792][HyperV ][Info ] Using existing Switch: DockerNAT
[19:06:47.824][NamedPipeServer][Error ] Unable to executeStart: Failed to create Switch “DockerNAT”: No MSFT_NetAdapter objects found with property ‘Name’ equal to ‘vEthernet (DockerNAT)’. Verify the value of the property and retry.
[19:06:47.828][NamedPipeClient][Error ] Unable to sending Start: Failed to create Switch “DockerNAT”: No MSFT_NetAdapter objects found with property ‘Name’ equal to ‘vEthernet (DockerNAT)’. Verify the value of the property and retry.
[19:06:47.833][Notifications ][Error ] Error: Failed to create Switch “DockerNAT”: No MSFT_NetAdapter objects found with property ‘Name’ equal to ‘vEthernet (DockerNAT)’. Verify the value of the property and retry.
[19:06:56.430][Program ][Info ] Sending Bugsnag report 5435443e-d3b3-47ce-9ebc-036f056e70b4 …
[19:06:58.734][Program ][Info ] Bugsnag report sent

I have the same issue.

Deleting virtual machine and reinstall Docker doesn’t help.
Docker doesn’t create a new one.

To resolve this issue I removed all the external switch using Virtual Switch Manager.
Recreate the ext switch.
Reinstall docker for windows beta.

I have exactly the same problem since my Windows 10 Insider Preview updated itself to build 14342. Unfortunately the suggestion given by @thariman does not solve it for me.

@jmeijrink After you delete all the vswitch. Make sure when you run
Get-NetAdapter “vEthernet*” return empty.
Then you can re create ext switch and reinstall docker.
On my case when it updated to 14342 the ext vswitch is connected to some hyperv interface.

Doesn’t help to me as well.
It because it always creates vEthernet (DockerNAT) 2 and I can’t rename it to vEthernet (DockerNAT)
Because the name already exists.
I’ve removed all vEthernet (DockerNAT) network connections, reboot system.
Search trough the registry didn’t find any vEthernet or DockerNAT strings.

But Hyper-V still creates vEthernet (DockerNAT) 2 instead of vEthernet (DockerNAT).
I have no idea how to fix it :frowning:

When I modify MobyLinux.ps1 to search for vEthernet ($SwitchName) 2 it starts to fail on DCHP because it still search for vEthernet ($SwitchName)

Try removing all the vEthernet not just the vEthernet (DockerNat) then
recreate your external vswitch and reinstall docker windows.

There is no any other vEthernet :frowning:

when you type

Get-NetAdapter

under powershell

does it return anything with Hyper-V Virtual Ethernet under description?

There is no any other vEthernet :frowning:
If I create switch with name Switch for example then ethernet vEthernet (Switch) will be create.
And after rename the switch from Switch to DockerNAT then ethernet name became vEthernet (DockerNat) 2

This is my Get-NetAdapter output:

PS C:\Users\werwo_000> Get-NetAdapter "vEthernet*"
PS C:\Users\werwo_000>

It is empty

how about type Get-NetAdapter without the "vEthernet*"
Please remove any MacAddress when you post it.

This is what I have on my SP4:
`
PS C:\Program Files\Docker\Docker\resources> Get-NetAdapter | select Name,InterfaceDescription

Name InterfaceDescription


Ethernet 3 Realtek USB GbE Family Controller #2
vEthernet (DockerNAT) Hyper-V Virtual Ethernet Adapter
vEthernet (Ext2) Hyper-V Virtual Ethernet Adapter #3
vEthernet (Ext) Hyper-V Virtual Ethernet Adapter #2
Ethernet 2 Surface Ethernet Adapter
Network Bridge Microsoft Network Adapter Multiplexor Driver
Wi-Fi Marvell AVASTAR Wireless-AC Network Controller
Bluetooth Network Connection Bluetooth Device (Personal Area Network)

PS C:\Program Files\Docker\Docker\resources> Get-VMSwitch

Name SwitchType NetAdapterInterfaceDescription


DockerNAT Internal
Ext External Marvell AVASTAR Wireless-AC Network Controller
Ext2 External Realtek USB GbE Family Controller

PS C:\Program Files\Docker\Docker\resources>
`

Last time when I have the DockerNat issue is when one of the external SwitchType pointing to non existing physical interface/controller right after I update to build 14342.

This is my output now:

PS C:\Program Files\Docker\Docker\resources> Get-NetAdapter | select Name,InterfaceDescription

Name                    InterfaceDescription
----                    --------------------
vEthernet (DockerNAT) 2 Hyper-V Virtual Ethernet Adapter #2
Ethernet                Intel(R) Ethernet Connection (2) I218-V
Ethernet 2              VMware Virtual Ethernet Adapter for VMnet8
Ethernet 3              VMware Virtual Ethernet Adapter for VMnet1


PS C:\Program Files\Docker\Docker\resources> Get-VMSwitch

Name      SwitchType NetAdapterInterfaceDescription
----      ---------- ------------------------------
DockerNAT Internal


PS C:\Program Files\Docker\Docker\resources>

Try adding external switch map to Ethernet. Which you may need if you want to run VM to have access to the internet without using NAT.
I also notice you probably have VMware workstation installed; I haven’t reinstall mine yet since you have to turn off hyper-v to run VMware.
The last think that I tried but give another issue is to modify
C:\Program Files\Docker\Docker\resources\MobiLinux.ps1 line 175 from

$networkAdapter = Get-NetAdapter “vEthernet ($SwitchName)” to
$networkAdapter = Get-NetAdapter “vEthernet ($SwitchName)*”

which will continue without the error but it may have a different error.
You can also try to destroy the switch using MobilLinux.ps1 -Destroy
and reinstall.

Sorry, I ran out of idea right now.

The issue this thread originally reported is no longer part of the discussion. I tried…

@russlescai: Sorry but issue is start happens after updating to Windows 10 insider build 14342, so I think discussion is still related, with the same error log.

@thariman: I’ve tried to change this code to “vEthernet (DockerNAT) 2” yesterday, and I’ve just tried with *:

[19:46:27.600][HyperV         ][Info   ] VM MobyLinuxVM does not exist
[19:46:27.606][Firewall       ][Info   ] Closing ports...
[19:46:27.608][PowerShell     ][Info   ] Run script...
[19:46:28.542][Firewall       ][Info   ] Ports are closed
[19:46:28.544][NamedPipeServer][Info   ] Stop done.
[19:46:28.546][NamedPipeClient][Info   ] Received response for Stop: 
[19:46:28.548][NamedPipeClient][Info   ] Sending Start(2, 2048)...
[19:46:28.550][NamedPipeServer][Info   ] Start(2, 2048)
[19:46:28.552][Firewall       ][Info   ] Opening ports for C:\Program Files\Docker\Docker\Resources\com.docker.proxy.exe and C:\Program Files\Docker\Docker\DockerForWindows.exe...
[19:46:28.554][PowerShell     ][Info   ] Run script...
[19:46:28.839][Updater        ][Info   ] Found remote version. Version = 1.11.1.2789
[19:46:28.842][Updater        ][Info   ] Local version is up to date.
[19:46:28.844][Updater        ][Info   ] Check for update done.
[19:46:29.561][Firewall       ][Info   ] Ports are opened
[19:46:29.564][HyperV         ][Info   ] Create
[19:46:29.566][PowerShell     ][Info   ] Run script with parameters: -Create True -CPUs 2 -Memory 2048 -IsoFile C:\Program Files\Docker\Docker\Resources\mobylinux.iso...
[19:46:29.679][HyperV         ][Info   ] Creating Switch: DockerNAT...
[19:46:30.238][HyperV         ][Info   ] Switch created.
[19:46:30.391][HyperV         ][Info   ] Set IP address on switch
[19:46:30.429][HyperV         ][Info   ] Using existing Net NAT: DockerNAT
[19:46:31.560][HyperV         ][Info   ] VHD C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\MobyLinuxVM.vhdx already exists
[19:46:31.642][HyperV         ][Info   ] Creating VM MobyLinuxVM...
[19:46:33.068][HyperV         ][Info   ] VM created.
[19:46:33.076][Dhcp           ][Info   ] Dhcp starting on port 67, on interface vEthernet (DockerNAT)...
[19:46:33.101][Dhcp           ][Error  ] Unable to start the dhcp server: Value cannot be null.
Parameter name: address. Will retry.
[19:46:33.604][Dhcp           ][Error  ] Unable to start the dhcp server: Value cannot be null.
Parameter name: address. Will retry.
[19:46:34.107][Dhcp           ][Error  ] Unable to start the dhcp server: Value cannot be null.
Parameter name: address. Will retry.
[19:46:34.610][Dhcp           ][Error  ] Unable to start the dhcp server: Value cannot be null.
Parameter name: address. Will retry.
[19:46:35.113][Dhcp           ][Error  ] Unable to start the dhcp server: Value cannot be null.
Parameter name: address. Will retry.
[19:46:35.616][Dhcp           ][Error  ] Unable to start the dhcp server: Value cannot be null.
Parameter name: address. Will retry.
[19:46:36.119][Dhcp           ][Error  ] Unable to start the dhcp server: Value cannot be null.
Parameter name: address. Will retry.
[19:46:36.623][Dhcp           ][Error  ] Unable to start the dhcp server: Value cannot be null.
Parameter name: address. Will retry.
[19:46:37.126][Dhcp           ][Error  ] Unable to start the dhcp server: Value cannot be null.
Parameter name: address. Will retry.
[19:46:37.628][NamedPipeServer][Error  ] Unable to executeStart: Value cannot be null.
Parameter name: address
[19:46:37.631][NamedPipeClient][Error  ] Unable to sending Start: Value cannot be null.
Parameter name: address
[19:46:37.634][Notifications  ][Error  ] Error: Value cannot be null.
Parameter name: address

Now I think that DHCP is trying to find vEthernet (DockerNAT)

Unfortunately I’ve solved this issue only by reinstall windows.

@thariman, I removed all Hyper-v ethernet adapters, also tried it with showing hidden adapters in device manager, but no matter what I do, if I create a first switch in Hyper-V manually. It always creates Hyper-V Virtual Ethernet Adapter #2 (So it always adds #2, while the one without #2 is not showing up in any way). Also the Ethernet adapter created in Network Connections always shows ‘vEthernet (DockerNAT) 2’, if I try to rename that to ‘vEthernet (DockerNAT)’ it says that an adapter with that name already exists. But also this is not true, I even tried removing all registry entries that match ‘vEthernet (DockerNAT)’, but after that I still had no success.

Name InterfaceDescription


vEthernet (DockerNAT) 2 Hyper-V Virtual Ethernet Adapter #2
Bluetooth Network Connection Bluetooth Device (Personal Area Network)
Wi-Fi Intel® Dual Band Wireless-AC 7260
Ethernet 10 VirtualBox Host-Only Ethernet Adapter #2
Ethernet 8 VirtualBox Host-Only Ethernet Adapter
Ethernet 2 TAP-Windows Adapter V9

Addition:
I think this should be fixed by the Docker team, to detect what the actual name is of the adapter created, and use that later on. It now seems that ‘vEthernet (DcokerNAT)’ is hardcoded and that is the only reason it does not work.

@thariman, I was just re-reading all the posts and saw that you mentioned MobyLinux.ps1, and it seems that inside there is a variable for SwitchName.

First after that I got the following error in the logs:
[15:29:37.941][PowerShell ][Info ] Run script with parameters: -Create True -CPUs 2 -Memory 2048 -IsoFile C:\Program Files\Docker\Docker\Resources\mobylinux.iso…
[15:29:38.093][HyperV ][Info ] Creating Switch: DockerNAT2…
[15:29:38.923][HyperV ][Info ] Switch created.
[15:29:39.092][HyperV ][Info ] Set IP address on switch
[15:29:39.105][HyperV ][Info ] Creating Net NAT: DockerNAT2…
[15:29:39.133][HyperV ][Info ] Net NAT created.
[15:29:40.212][HyperV ][Info ] Creading dynamic VHD: C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\MobyLinuxVM.vhdx
[15:29:41.295][HyperV ][Info ] Creating VM MobyLinuxVM…
[15:29:43.125][HyperV ][Info ] VM created.
[15:29:43.134][Dhcp ][Info ] Dhcp starting on port 67, on interface vEthernet (DockerNAT)…
[15:29:43.211][Dhcp ][Error ] Unable to start the dhcp server: Value cannot be null.

As you see the it is trying the wrong interface, based on the name DockerNAT, I can’t find any new reference to that.

after booting this morning (duh, first reboot after making registry changes!) I can rename the network adapter to ‘vEthernet (DockerNAT)’ again, unfortunately a new error pops up:

[08:43:58.927][HyperV ][Info ] Creating Switch: DockerNAT…
[08:43:59.844][HyperV ][Info ] Switch created.
[08:44:00.038][HyperV ][Info ] Set IP address on switch
[08:44:00.066][HyperV ][Info ] Creating Net NAT: DockerNAT…
[08:44:00.107][NamedPipeClient][Error ] Unable to send Start: Failed to create Switch “DockerNAT”: The parameter is incorrect.

[08:44:00.108][Notifications ][Error ] Failed to create Switch “DockerNAT”: The parameter is incorrect.

I’ll be investigating it further and let know if I find out anything more.