Docker:Hyper-V无法找到名为“DockerNAT”的虚拟交换机

问题描述 投票:2回答:4

我在Windows 10 pro上更新了桌面应用程序(版本2.0.0.3)的docker。但是从那时起我的docker没有启动并抛出以下错误。

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

我按照链接中提到的步骤(Docker on windows 10 can't startup after deleting MobyLinuxVM in Hyper-V manually),但它没有解决问题。 enter image description here我还试过禁用 - >重启 - >然后使用“控制面板\程序\程序和功能”中的“打开或关闭Windows功能”启用Hyper V和容器选项

我的网络连接有以下信息enter image description here

但我仍然无法启动我的Windows Docker应用程序,它继续投掷

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
windows docker docker-machine docker-windows
4个回答
1
投票

我也曾经遇到过这个问题。

我尝试了几种解决方法,但没有任何效果。问题是MobyLinuxVM无法创建Docker NAT交换机,因此无法启动Docker服务。

工作solution是重置我的网络设置。我不记得是否必须删除计算机管理中的所有网络相关条目才能从头开始重新初始化。

重要提示:您将丢失所有用户定义的网络相关设置。如果其他一切都失败了,试试吧

编辑:您可以尝试的另一件事是通过在管理shell中执行以下命令来重新启动Hyper-V管理服务:

net stop vmms
net start vmms

在相关的github issue中找到


1
投票

打开hyper-v管理器并检查“虚拟交换机管理器”,如果你可以看到DockerNAT,Docker for windows在创建mobylinux vm之前创建了这个交换机。如果您的powershell脚本没有创建此交换机,请尝试直接在那里创建它。


0
投票

运行MOFCOMP命令并重新启动为我修复了这个问题。

  1. 运行此命令:(以管理员身份命令提示符)MOFCOMP%SYSTEMROOT%\ System32 \ WindowsVirtualization.V2.mof
  2. 然后重启

(Qazxswpoi)

© www.soinside.com 2019 - 2024. All rights reserved.