我最近在使用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...
作为旁注,如果可以,我建议您使用Docker For Windows而不是Docker ToolBox在Windows上运行Docker(需要Windows 10 Professional或Enterprise 64位).
我的情景:
> Windows 10 Pro版本1709
>我尽可能使用Hyper-V来运行虚拟机,但是需要使用Windows XP作为客户操作系统运行旧的VirtualBox VM
> VirtualBox 5.2.4-119785(Windows仅支持单个虚拟机管理程序 – 如果需要在Hyper-V和VirtualBox之间切换,我可以推荐this approach)
> VirtualBox没有(或未能)在安装时创建仅主机适配器
当尝试使用主机网络管理器GUI创建仅主机适配器时,我得到了可怕的“无法创建仅主机适配器”错误消息,详细信息为:“查询NetCfgInstanceId失败(0x00000002)”.
因为我使用Hyper-V,除了实际的物理适配器之外,我还有许多Hyper-V虚拟以太网适配器.
查看物理适配器的属性,Hyper-V关闭除“Hyper-V可扩展虚拟交换机”之外的所有协议驱动程序似乎是正常的. Windows然后通过其中一个虚拟适配器获得其网络连接,在我的情况下称为“外部虚拟交换机”,并在那里启用通常的协议驱动程序集(TCP / IPv4等).
然后我注意到VirtualBox似乎(想要)以类似的方式工作,因为它已经设法安装并启用了一个名为“VirtualBox NDIS6桥接网络驱动程序”的新协议驱动程序.
当我检查其他虚拟适配器的属性时,我注意到所有这些都启用了“VirtualBox NDIS6桥接网络驱动程序”,但“Hyper-V可扩展虚拟交换机”却没有.在Hyper-V虚拟适配器上启用VirtualBox驱动程序似乎很奇怪,因此我在所有虚拟适配器上禁用了它,但在物理适配器上启用了它.
我认为在这个阶段我为了好运而投入了一个很好的重新启动,但我怀疑这是否真的是必要的.当我随后尝试再次创建VirtualBox主机适配器时,它工作正常! (我实际上从VirtualBox得到了一个错误消息,在我必须在任务栏上找到的模式中,关于已经使用的适配器名称.但是在Windows网络连接下出现了一个新的“VirtualBox Host-only Ethernet Adapter”我关闭并重新打开VirtualBox主机网络管理器窗口,适配器也出现在那里.)
TL; DR;
我的理论是,VirtualBox由于某种原因无法确定哪个适配器是实际的物理网络适配器,并且以一种相当高的方式继续前进并在其找到的每个适配器上启用其“VirtualBox NDIS6桥接网络驱动程序”.
此外,它似乎无法确定创建其虚拟“包装适配器”所需的适配器和失败.
即使您不使用/拥有Hyper-V,您也可能拥有多个适配器,包括虚拟适配器(例如,许多VPN软件也会安装虚拟适配器).
在尝试再次创建VirtualBox主机适配器之前,您可以尝试禁用除实际物理网络适配器之外的所有物理网络适配器上的“VirtualBox NDIS6桥接网络驱动程序”.
对于VirtualBox而言,这肯定不是一个新问题,因为它们的公共bugtracker和其他地方(大约2年以上)的大量相关票证.我有一种感觉,对于很多人来说,问题可能与我上面所描述的有关,所以希望这对他们有所帮助.
编辑01/15
嗯,回想起来,我不确定Windows使用Hyper-V“外部虚拟交换机”进行网络连接是多么正常.如果我没记错的话,Hyper-V创建的“默认”开关以及通过NAT提供与访客的连接是一个相对较新的事情,在此之前需要添加和使用“外部”开关……在我的家用电脑上,没有“外部”交换机,正常(TCP / IPv4等)协议驱动程序在物理网络适配器上保持启用状态,并且在物理和虚拟适配器上禁用“Hyper-V可扩展虚拟交换机”.如果在这种情况下添加新的“外部虚拟交换机”,我没有机会测试会发生什么.