草庐IT

docker - 无法创建仅主机适配器 - Windows 10、docker、virtualbox

coder 2023-05-27 原文

在使用 docker toolbox 一段时间后,我最近遇到了这个问题。

Windows更新后开始发生?

Windows 10 家庭版 - 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 没有特别的关系,但看到这是最近在 Google 上搜索 时 HitTest 门的 Stack Overflow 搜索结果之一(连同 this 问题)。 “无法创建仅主机适配器”来自 VirtualBox 的错误消息,我将其留在这里,希望对其他人有所帮助。

作为旁注,如果可以,我建议您使用 Docker For Windows而不是 Docker Toolbox 在 Windows 上运行 Docker(需要 Windows 10 Professional 或 Enterprise 64 位)。

我的场景:

  • Windows 10 专业版 1709
  • 我尽可能使用 Hyper-V 来运行虚拟机,但需要使用 Windows XP 作为 guest 操作系统运行旧的 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 可扩展虚拟交换机”之外的所有协议(protocol)驱动程序似乎是正常的。 Windows 然后通过其中一个虚拟适配器获得网络连接,在我的例子中它被称为“外部虚拟交换机”,并且在那里启用了一组常用的协议(protocol)驱动程序(TCP/IPv4 等)。



    然后我注意到 VirtualBox 似乎(想要)以类似的方式工作,因为它设法安装并启用了一个名为“VirtualBox NDIS6 桥接网络驱动程序”的新协议(protocol)驱动程序。



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

    我认为在这个阶段我为了好运而进行了一次很好的重启,尽管我怀疑这是否真的有必要。当我随后再次尝试创建 VirtualBox 仅主机适配器时,它成功了! (我实际上从 VirtualBox 收到了一条错误消息,在我必须在任务栏上找到的模式中,关于适配器名称已被使用。但是,Windows 网络连接下出现了一个新的“VirtualBox Host-Only Ethernet Adapter”,当我关闭并重新打开 VirtualBox 主机网络管理器窗口,适配器也出现在那里。)

    TL; 博士;

    我的理论是 VirtualBox 出于某种原因无法确定哪个适配器是实际的物理网络适配器,并且以一种相当火爆的方式继续并在 上启用其“VirtualBox NDIS6 桥接网络驱动程序”每它找到的适配器。

    此外,它似乎无法确定它需要为哪个适配器创建其虚拟“包装器适配器”并失败。

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

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

    从 VirtualBox 的公共(public) bugtracker 和其他地方的大量相关票证来看,这对于 VirtualBox 来说肯定不是一个新问题,其中一些已经超过 2 年了。我有一种感觉,对于很多人来说,问题可能与我上面描述的有关,所以希望这对他们有所帮助。

    编辑 01/15

    嗯,回想起来,我不确定 Windows 使用 Hyper-V“外部虚拟交换机”进行网络连接有多正常。如果我没记错的话,Hyper-V 创建并通过 NAT 为 guest 提供连接的“默认”开关是一个相对较新的东西,并且在需要添加和使用“外部”开关之前......在我的家用 PC 上,没有一个“外部”开关,正常(TCP/IPv4 等)协议(protocol)驱动程序在物理网络适配器上保持启用状态,并且在物理和虚拟适配器上禁用“Hyper-V 可扩展虚拟交换机”。我还没有机会测试如果在这些情况下添加新的“外部虚拟交换机”会发生什么。

    关于docker - 无法创建仅主机适配器 - Windows 10、docker、virtualbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43580778/

    有关docker - 无法创建仅主机适配器 - Windows 10、docker、virtualbox的更多相关文章

    1. ruby - 如何在 Ruby 中顺序创建 PI - 2

      出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

    2. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

      我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

    3. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

      关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

    4. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

      我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

    5. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

      使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

    6. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

      我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

    7. ruby - 无法运行 Rails 2.x 应用程序 - 2

      我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

    8. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

      我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

    9. ruby - 如何使用 RSpec::Core::RakeTask 创建 RSpec Rake 任务? - 2

      如何使用RSpec::Core::RakeTask初始化RSpecRake任务?require'rspec/core/rake_task'RSpec::Core::RakeTask.newdo|t|#whatdoIputinhere?endInitialize函数记录在http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/RakeTask#initialize-instance_method没有很好的记录;它只是说:-(RakeTask)initialize(*args,&task_block)AnewinstanceofRake

    10. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

      我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

    随机推荐