Docker for Windows错误:“硬件辅助虚拟化和数据执行保护必须在bios中启用”;

我已经安装了Docker,当我运行GUI时,我得到这个错误:

必须有硬件辅助虚拟化和数据执行保护 be enabled in BIOS

.输出说明

似乎是一个bug,因为Docker在命令行中工作得很好,但我想知道是否有人知道为什么会发生这种情况?

在你问之前,是的,我已经在BIOS中启用了虚拟化,并且英特尔处理器识别实用程序确认它已被激活。Docker, Docker -machine和Docker -compose都可以在命令行中工作,Virtualbox可以,在Debian或Ubuntu虚拟机中运行Docker也可以。

GUI有个奇怪的问题。

我的规格:

  • Windows 10 Pro x64周年纪念版
  • 英特尔酷睿i5-6300HQ @ 2.30GHz
449769 次浏览

如果启用了所描述的特性,则问题在于Hyper-V被禁用或Hypervisor代理未运行。

解决方案一(如果Hyper-V完全禁用或未安装)

  1. 以管理员身份打开PowerShell

  2. 使能Hyper-V with

    dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

解决方案B(如果Hyper-V功能已经启用但不工作)

使用

bcdedit /set hypervisorlaunchtype auto

现在重新启动系统并重试。

解决方案C

如果问题仍然存在,可能是系统上的Hyper-V损坏了,所以

  1. 进入Control Panel -> [Programs] -> [Windows Features],完全取消选中所有Hyper-V相关的组件。重新启动系统。

  2. 重新启用Hyper-V。重新启动。

< em >注1 < / em >:

Hyper-V需要硬件虚拟化作为前提。确保你的电脑支持它,如果是,仍然不能工作,有可能你的BIOS没有正确配置,这个功能被禁用。在这种情况下,请检查并启用后重试。根据所使用的平台,虚拟化特性可以以不同的名称报告(例如,如果你没有看到任何显式使用虚拟化标签的选项,在AMD上你必须检查支持向量机特性状态,在英特尔上检查开始特性状态)。

< >强注2:< / >强

Hyper-V 可以只能安装在某些版本中,例如:

Windows 10企业版;Windows 10 Professional;Windows 10教育。

Hyper-V 不能安装在更便宜的或移动Windows版本上,例如:

Windows 10家庭版;Windows 10 Mobile;Windows 10移动企业。

打开任务管理器并单击性能选项卡。如果虚拟化是禁用的,你需要遵循这里的说明来启用它:https://blogs.technet.microsoft.com/canitpro/2015/09/08/step-by-step-enabling-hyper-v-for-use-on-windows-10/

我卸载了英特尔HAXM和VirtualBox, Docker现在运行

尝试在PowerShell(启用管理员):

Enable-WindowsOptionalFeature –Online -FeatureName Microsoft-Hyper-V –All -NoRestart

这将在没有管理工具的情况下安装HyperVisor,然后您可以在此之后运行Docker。

对我来说,我所要做的就是卸载VMware。

Docker现在正在运行

在我的情况下,我不得不卸载hyper-v,重新启动pc,并再次运行docker。

下面是我的工作方案,请按照这些步骤

  1. 以管理员身份打开PowerShell或以管理员身份打开CMD提示符

  2. 在PowerShell-> bcdedit /set hypervisorlaunchtype auto中执行此命令

  3. 现在重新启动系统并重试。

欢呼。

当我卸载Cygwin时,问题就解决了。

我也用vagrant。看来我一次只能用一件东西。卸载vagrant/virtualBox允许我运行docker,反之亦然

我尝试了这里的许多建议,但没有设法让它运行。最后对我有用的是直接进入BIOS激活它。下面的文章很有帮助: https://www.nextofwindows.com/how-to-enable-configure-and-use-hyper-v-on-windows-10 < / p >

我尝试了上面的许多建议,但docker一直抱怨硬件辅助虚拟化错误。在BIOS中启用虚拟化,并安装并启用Hyper-V。经过几次尝试和错误之后,我最终下载了coreinfo工具,并发现Hypervisor实际上没有启用。使用ISE(64位)作为管理员,并从上述解决方案B运行命令,成功启用Hypervisor(再次通过coreinfo -v检查)。重新启动后,docker现在已经成功运行。

@Silverstorm

我在BIOS中安装了Hyperv并启用了虚拟化。

但是A方案并不适合我。

然而,解决方案B非常有效。

解决方案B(如果Hyper-V功能已经启用但不工作)

使用

bcdedit /set hypervisorlaunchtype auto .

.请重新启动系统,然后重试

除了原来的答案,我还做了以下工作:

  • 禁用窗口功能中的Hyper-V
  • 在BIOS中关闭和打开虚拟化
  • 重新登录windows,启用Hyper-V。我被提示有Hyper-V的更新,我做了更新。当出现提示时重新启动。
  • 它工作!

试试以下步骤

  1. 在powershell下执行该命令
    bcdedit /set hypervisorlaunchtype
    auto
    
  2. 重启电脑
  3. 现在在cmd行中尝试docker --version

如果一切正常,BIOS选项我只是强制禁用和启用所有HyperV功能,这解决了我的问题 - - - cmd 禁用- windowsoptionalfeature -Online -FeatureName Microsoft-Hyper-V-All ——重启 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

. txt

在我的例子中,我必须在BIOS设置中启用虚拟化。

  1. 重新启动电脑
  2. 当你在“重启”屏幕上按下这些键中的任何一个,你进入windows中的bios设置:Esc, f1, f2, f3, f4, f8或删除
  3. 对于基于intel的系统:
    • 按f7(高级模式)
    • 转到高级
    • 注册会计师的配置
    • 支持虚拟化
    • 李< / ul > < / >

在以上所有步骤之后,它终于工作了:-)

在我的情况下,即使我使用了上面提到的所有解决方案,但没有一个对我有效。所以我决定卸载docker,重新安装。

现在在这个过程中,我注意到我没有检查Use Windows containers instead of Linux containers (this can be changed after installation)在我之前的安装,这就是为什么我得到上面的问题,解决方案仍然没有解决它。所以确保在运行desktop docker之前检查它,或者通过检查这个选项卸载它并重新安装它。

Docker安装过程 .

如果问题仍然存在,可能是系统上的Hyper-V损坏了,所以

进入控制面板->(项目)→[Windows功能]和完全取消所有Hyper-V相关组件。重新启动系统。

再次启用Hyper-V。重新启动。

我在安装VMWare后也遇到了同样的问题,我卸载了它,但这并没有解决问题。

我的解决方案:在“打开或关闭窗口功能”;我关掉了:

  • hyper - v
  • 容器
  • Windows Linux分系统

然后重新启动

重启后,我从docker得到了这条消息:

enter image description here

我执行了消息中说的命令

Enable-WindowsOptionalFeature -Online -FeatureName $("VirtualMachinePlatform", "Microsoft-Windows-Subsystem-Linux")

然后重新启动和voilà, Docker就带着WSL2回来了

如果您的Windows版本支持Hyper-V,您可以在安装过程中选择“使用Hyper-V”直接安装docker。 但是,如果您的Windows不支持此支持,请遵循下面的解决方案
我也有类似的问题。 我已经在bios设置。

. xml文件中启用了Intel Virtual Technology

enter image description here

然后我从在这里更新了Linux内核。 它工作

我的规格:

  • Microsoft Windows 10 Home x64单语言
  • Intel(R) Core(TM) i5-7300 @ 2.50GHz

通过“设置”使能Hyper-V角色 右键单击Windows按钮/图标并选择' 应用程序和功能 ' .

1-在相关设置中选择右侧的程序和功能

2-选择打开或关闭Windows功能

2-选择hyper - v单击OK

enter image description here

如果上述解决方案不工作,那么 进入命令提示符并输入systeminfo。检查Hyper-V要求部分。 如果列出的所有Hyper-V需求的值都为Yes,则系统可以运行Hyper-V角色。 在我的情况下,固件中的虚拟化启用是NO。 因此,我在系统bios中启用了虚拟化技术,在我的惠普笔记本电脑中启用了虚拟化技术。 请按此连结启用: https://2nwiki.2n.cz/pages/viewpage.action?pageId=75202968 < / p >

对我来说,在BIOS中禁用然后启用虚拟化是有帮助的,奇怪的是。

遵循以下步骤:

  1. 转到:Windows设置=>更新,安全=比;复苏=比;高级启动,单击:立即重启。
  2. 排除=比;高级期权=>UEFI固件=>重新启动。
  3. 进入Bios =>配置=比;虚拟化技术=>启用它。
  4. 保存更改,它就会工作。

1 step

step 2

它帮助了我:

  • 禁用组件虚拟机平台和Windows子系统for Linux
  • 重新启动
  • 使组件
  • 重新启动
我认为我的问题与WSL2的测试版有关。 我尝试安装android子系统。但是我前一段时间已经删除了。所以只有β WSL2

在我的情况下,虚拟化是禁用的,所以我需要在我的bios中做一些配置,

请检查以下链接,我认为它将帮助您进行bios设置

https://support.bluestacks.com/hc/en-us/articles/4409279876621-How-to-enable-Virtualization-VT-on-Windows-11-for-BlueStacks-5

在bios的设置取决于你的系统制造,所以请找到相应的设置。

希望它能帮助你,节省你的时间。

谢谢:)

我不知道这是如何工作的,我甚至不知道这些命令是做什么的,我不知道什么是hypervisor或它对Docker有什么干扰,我不知道nx在第二个命令中的意思是什么,它显然是关闭它。我把这些命令保存在我的电脑上,叫“关闭VT-x”。(还有一件事我不知道它是什么,我想它与虚拟化技术有关,我也不知道它是做什么的)。但除了运行这两种方法,其他方法都不起作用(包括被接受的答案(我测试了它的所有解决方案)和其他被好评的答案,尽管我没有阅读所有答案)。这完全取决于你来测试这些,我不保证对你有任何修复,但它对我有用,我把它放在这里,因为我认为它可能对像我这样也没有找到其他答案的人有帮助:

bcdedit /set hypervisorlaunchtype auto


bcdedit /set nx AlwaysOff


shutdown /s