无法创建仅限主机的适配器 - Windows 10,docker,virtualbox

时间:2017-04-24 06:00:49

标签: docker virtual-machine virtualbox docker-machine docker-toolbox

我最近在使用docker工具箱一段时间没有问题后遇到了这个问题。

在Windows更新后开始发生了什么?

Windows 10 Home - 64

卸载并重新安装Docker工具箱

卸载并重新安装各种版本的VirtualBox

仍然得到相同的错误

Running pre-create checks...
Creating machine...
(default) Copying C:\Users\me\.docker\machine\cache\boot2docker.iso to C:\Users\me\.docker\machine\machines\default\boot2docker.iso...
(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Check network to re-create if needed...
(default) Windows might ask for the permission to create a network adapter. Sometimes, such confirmation window is minimized in the taskbar.
(default) Creating a new host-only adapter produced an error: C:\Program Files\Oracle\VirtualBox\VBoxManage.exe hostonlyif create failed:
(default) 0%...
(default) Progress state: E_FAIL
(default) VBoxManage.exe: error: Failed to create the host-only adapter
(default) VBoxManage.exe: error: Querying NetCfgInstanceId failed (0x00000002)
(default) VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterface
(default) VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleCreate(struct HandlerArg *)" at line 71 of file VBoxManageHostonly.cpp
(default)
(default) This is a known VirtualBox bug. Let's try to recover anyway...
Error creating machine: Error in driver during machine creation: Error setting up host only network on machine start: The host-only adapter we just created is not visible. This is a well known VirtualBox bug. You might want to uninstall it and reinstall at least version 5.0.12 that is is supposed to fix this issue
Looks like something went wrong in step ´Checking if machine default exists´... Press any key to continue...

13 个答案:

答案 0 :(得分:3)

这个答案与Docker没有特别的关系,但在搜索"时,看到这是Google上最新的Stack Overflow搜索结果(以及this问题)之一。无法从VirtualBox创建仅限主机的适配器" 错误消息,我将此留在此处,希望它能帮助其他人。

作为旁注,如果您可以,我建议您使用Docker For Windows代替Docker Toolbox在Windows上运行Docker(需要Windows 10 Professional或Enterprise 64位)。< / p>

我的情景:

  • Windows 10专业版1709
  • 我尽可能使用Hyper-V来运行虚拟机,但是需要使用Windows XP作为来宾操作系统运行旧的VirtualBox VM
  • VirtualBox 5.2.4-119785(Windows仅支持单个虚拟机管理程序 - 如果您需要在Hyper-V和VirtualBox之间切换,我可以推荐this approach
  • VirtualBox没有(或未能)在安装时创建仅限主机的适配器

当尝试使用主机网络管理器GUI创建仅主机适配器时,我遇到了可怕的问题&#34;无法创建仅限主机的适配器&#34;错误消息,详细信息为:&#34;查询NetCfgInstanceId失败(0x00000002)&#34;

因为我使用的是Hyper-V,除了实际的物理适配器外,我还有许多Hyper-V虚拟以太网适配器。

Network Connections

查看物理适配器的属性,Hyper-V关闭所有协议驱动程序似乎是正常的,除了&#34; Hyper-V可扩展虚拟交换机&#34;。 Windows然后通过其中一个虚拟适配器获得其网络连接,在我的情况下,它被称为&#34;外部虚拟交换机&#34;,并且在那里启用了通常的一组协议驱动程序(TCP / IPv4等)

Hyper-V Extensible Virtual Switch

然后我注意到VirtualBox看起来(想要)以类似的方式工作,因为它已经设法安装并启用一个名为&#34; VirtualBox NDIS6桥接网络驱动程序的新协议驱动程序&#34;。

VirtualBox NDIS6 Bridged Networking Driver

当我检查其他虚拟适配器的属性时,我注意到&#34; VirtualBox NDIS6桥接网络驱动程序&#34;已经启用了所有这些,但是&#34; Hyper-V可扩展虚拟交换机&#34;不是。在Hyper-V虚拟适配器上启用 VirtualBox驱动程序似乎很奇怪,所以我在所有这些驱动程序上禁用了它,但在物理适配器上启用了它。

我认为在这个阶段我为了好运而投入了一个很好的重新启动,但我怀疑这是否真的有必要。当我随后尝试再次创建VirtualBox主机适配器时,它工作正常! (我实际上从VirtualBox得到了一个错误消息,在我必须在任务栏上找到的模式中,关于已经使用的适配器名称。但是新的&#34; VirtualBox仅限主机的以太网适配器&#34;出现在Windows网络连接,当我关闭并重新打开VirtualBox主机网络管理器窗口时,适配器也出现在那里。)

<强> TL; DR;

我的理论是VirtualBox由于某种原因无法确定哪个适配器是实际的物理网络适配器,并且以一种相当高的方式继续进行并启用其虚拟盒NDIS6桥接网络驱动程序&#34;在找到的每个适配器上。

此外,它似乎无法确定创建其虚拟&#34;包装适配器所需的适配器&#34;为了和失败。

即使您没有使用/拥有Hyper-V,您也可能拥有多个适配器,包括虚拟适配器(例如,许多VPN软件也会安装虚拟适配器)。

您可以尝试禁用&#34; VirtualBox NDIS6桥接网络驱动程序&#34;在尝试再次创建VirtualBox仅主机适配器之前,除了实际的物理网络适配器之外的其他所有适配器。

对于VirtualBox而言,这肯定不是一个新问题,因为它们的公共bugtracker和其他地方(大约2年以上)的大量相关票证。我有一种感觉,对很多人来说,问题可能与我上面所描述的有关,所以希望这对他们有所帮助。

修改01/15

嗯,回想起来,我不确定Windows使用Hyper-V&#34;外部虚拟交换机&#34;是多么正常。用于网络连接。如果我没记错了&#34;默认&#34; Hyper-V创建的交换机通过NAT提供与客户的连接是一个相对较新的事情,在此之前需要添加和使用&#34;外部&#34;切换...在我的家用电脑上,没有&#34;外部&#34;交换机,正常(TCP / IPv4等)协议驱动程序在物理网络适配器和&#34; Hyper-V可扩展虚拟交换机&#34;上保持启用状态。在物理和虚拟适配器上都被禁用。如果我添加一个新的&#34;外部虚拟交换机&#34;我还没有机会测试会发生什么。在这种情况下。

答案 1 :(得分:3)

tl; dr 如果您使用的是趋势科技或Symantec防病毒解决方案,请尝试卸载Virtualbox,然后在禁用防病毒软件的情况下重新安装。 它也可以与其他人合作。

我正在为记录添加此答案。

我的同事和我在从Windows 10 Pro版本1703更新到版本1709之后就开始遇到类似的问题了。

我尝试回滚到版本1703,它有效,但当然这不是一个可接受的解决方案。

出于某种原因,这与防病毒有关,在我们的例子中是防病毒软件。在禁用防病毒软件的情况下进行干净的重新安装后,仅主机适配器再次可用。

此问题已在Virtualbox论坛和问题跟踪器中报告:
https://forums.virtualbox.org/viewtopic.php?f=6&t=86179#p413876
https://www.virtualbox.org/ticket/17354#comment:22

不幸的是,这个错误非常频繁,并且已经有数十次报道不同的原因。 在我们的示例中,bszom's answer中显示的设置已经正确。

答案 2 :(得分:2)

我和你有同样的错误。 在我遇到错误后打开VirtualBox的情况下,它会警告需要更新VirtualBox。因此,我安装了最新的并最终再次打开“ Docker Quickstart Terminal”快捷方式,它可以正常工作。 因此,我认为再次安装虚拟盒或在安装Docker ToolBox之前安装可以解决此问题。 (我知道有人首先安装它)。 祝你好运。

答案 3 :(得分:1)

在安装过程中,通过禁用除物理适配器之外的所有网络适配器,使我能够正常工作。安装完成后,您可以重新启用它们。要禁用适配器,请执行以下步骤:

  1. 打开控制面板
  2. 网络连接
  3. 选择每个适配器,然后从顶部选择“禁用此网络设备”

答案 4 :(得分:1)

我能够使用最新的Virtualbox版本6.0.14解决该问题

答案 5 :(得分:0)

Windows刚刚更新我构建1709并且我的主机仅适配器已经消失,由于此错误我无法创建新的适配器: 查询NetCfgInstanceId失败(0x00000002)。

似乎回滚更新是目前唯一的选择。

答案 6 :(得分:0)

不幸的是我也有问题(Win10,1709,virtualbox 5.1)。使用vagrant从网上提取linux图像。

这解决了它

  

让您的网络驱动程序到最新的支架

     

卸载Virtualbox

     

重新安装Virtualbox

     

检查您是否只有&#34;主机&#34;网络适​​配器配置中的虚拟适配器。   如果是,那么你很高兴。如果不。尝试从vboxmanage安装它。

C:\Program Files\Oracle\VirtualBox\VBoxManage.exe hostonlyif create
  

如果您看到它,请从设备管理器卸载 HyperV虚拟以太网适配器(此块通常会创建虚拟盒虚拟网络(仅限主机的以太网适配器))

我在我公司的一种计算机上遇到过这个问题,但在其他类型的计算机上却没有。所以这必须与网络适配器本身的类型有关。所以有时你很幸运,有时候没有。但是我更幸运地拥有最新展台的硬件。

答案 7 :(得分:0)

我遇到了同样的错误。

检查Window的设备管理器,发现了带有感叹号的Virtualbox网络适配器设备。

设备状态表明由于某种原因存在签名问题。

我不鼓励任何人忽略该警告,但我选择这样做:)

我使用described in this link方法关闭了Window的签名验证,终于可以将Virtualbox与仅主机适配器一起使用了。

注意:此答案重复。我已经删除了其他

答案 8 :(得分:0)

我遇到了同样的错误。

但是我的物理连接属性中没有“ VirtualBox NDIS6桥接网络驱动程序”。 Wireshark安装中具有相同的驱动程序“ NPCAP ... ”。如果看一下说明,您会看到这是NDIS6驱动程序。

然后,我删除所有wireshark程序包:NPCAP,WinPCAP,Wireshark并删除VirtualBox。

重新启动。

重新安装Virtual Box。安装Docker ToolBox(取消选中安装NDIS5 )。并为docker创建 default 虚拟机。

docker-machine create -d "virtualbox" default

正常创建的仅主机接口

docker-machine status
Running

对我有用。

答案 9 :(得分:0)

我卸载了Wireshark,docker工具提示和VirtualBox,还停用了防病毒临时软件。 然后,我没有选择安装NDIS5就安装了docker工具提示,它对我有用。

答案 10 :(得分:0)

我昨天安装了Docker Toolbox,因为我有不支持Docker桌面的Windows 10 Home。

重新启动或安装Java并不能解决我的问题。这样做是删除与工具箱一起安装的Oracle VM(5.2.12或类似版本),然后重新安装新的6.1.8。检查他们的网站,这很有意义:

enter image description here

答案 11 :(得分:0)

上述解决方案对我不起作用,因此我将Virtual BoxVB CODE code分开安装。

在安装Docker时,取消选中Virtual Box复选框。

答案 12 :(得分:0)

我遇到了同样的错误:

(default) VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterface

但是对于我而言,我试图在 Windows 8.1 64位版上安装 Docker Toolbox < / p>

Windows-8.1-6.3.9600-SP0 : AMD64

以前,我在系统上安装了 virtualbox 6.0版 ,所以我没有选中docker toolbox安装程序选项,安装virtualbox。

在我的情况下,它可以卸载virtualbox 6.0重新启动系统并安装VirtualBox-6.1.12-139181

注意:作为卸载程序,请使用此tool.

并准备在Windows 8.1中运行docker。

Docker ToolBox on Windows 8.1