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


151

我已经安装了Docker,并且在运行GUI时遇到此错误:

必须在BIOS中启用硬件辅助的虚拟化和数据执行保护

自从Docker在命令行中像超级按钮一样工作以来,这似乎是一个错误,但是我想知道是否有人对此产生了线索?

在您问之前,是的,我已经在BIOS中启用了虚拟化,并且Intel Processor Identification Utility确认它已被激活。Docker,docker-machine和docker-compose都可以通过命令行完成,Virtualbox可以运行,而从Debian或Ubuntu VM运行Docker则可以。

关于GUI只是这个奇怪的问题。

我的规格:

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

Answers:


339

如果启用了描述的功能,则问题出在Hyper-V已禁用或Hypervisor代理未运行

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

  1. 以管理员身份打开PowerShell,然后

  2. 启用Hyper-V与

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

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

通过以下方式启用虚拟机监控程序

bcdedit /set hypervisorlaunchtype auto

现在重新启动系统,然后重试。

解决方案C

如果问题仍然存在,则可能是系统上的Hyper-V已损坏,因此

  1. 进入控制面板-> [程序]-> [Windows功能],然后完全取消选中所有与Hyper-V相关的组件。重新启动系统。

  2. 再次启用Hyper-V。重新开始。

注1

Hyper-V需要将硬件虚拟化作为前提条件。确保您的PC支持它,如果可以,但仍然无法正常工作,则可能是您的BIOS配置不正确并且此功能已被禁用。在这种情况下,请检查并启用它,然后重试。可以根据所使用的平台以不同的名称报告虚拟化功能(例如,如果看不到显式使用虚拟化标签的任何选项,则在AMD上必须检查SVM功能状态,在Intel上要检查VT-x功能状态)。

笔记2:

Hyper-V的可以只与某些版本的例如被安装:

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

Hyper-V 无法安装在便宜或移动Windows版本上,例如:

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


3
@Julien尝试解除安装并重新安装Hyper-V,请参阅编辑
Silverstorm

5
万一其他人有类似的问题,我最近在Windows(使用Hyper-V)的Ubuntu上安装了Bash。在我卸载它并按照此答案中的步骤操作后,Docker为我工作!
凯尔·查利斯

9
我在MacBook Pro的Bootcamp上运行Windows 10。我有同样的问题。我首先尝试过,dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All但似乎并没有解决问题,因此我尝试了一下bcdedit /set hypervisorlaunchtype auto,现在Docker正在为我运行。
约翰尼·奥什卡

1
在我看来,这不是问题,而是在BIOS中禁用了虚拟化这一事实。我必须在BIOS的“安全性”选项卡中启用虚拟化功能,这导致docker之后立即工作。
shahar_m

5
通过Samsung SSD迁移工具升级/切换我的SSD后,解决方案B为我工作。
plocks

19

以下是适用于我的解决方案,请按照以下步骤操作

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

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

  3. 现在重新启动系统,然后重试。

干杯。


4
为我工作,没有卸载英特尔HAXM,但现在vmware不再起作用:(
realtebo '18

11

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


12
我已经为Android开发安装了HAXM,并且不得不禁用HyperV。删除它可恢复适用于Windows的Docker。现在是否有人可以告诉我如何使Android Emulator和Docker共存?
Dieter Menne





1

就我而言,我必须卸载hyper-v,重新启动pc,然后再次运行docker。


1

在PowerShell(启用管理员)中尝试以下操作:

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

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


1

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


1

尝试这些步骤

  1. 在powershell中运行此命令---> bcdedit / set hypervisorlaunchtype auto
  2. 重新启动电脑
  3. 现在尝试在cmd行中使用docker --version


0

我也用流浪汉。看来我一次只能使用1件事。卸载vagrant / virtualBox可让我运行docker,反之亦然



0

@银雨

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

但是解决方案A不适用于我。

但是,解决方案B就像一个魅力。

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

通过以下方式启用虚拟机监控程序

bcdedit / set hypervisorlaunchtype auto现在重新启动系统,然后重试。


0

除了原始答案外,我还执行以下操作:

  • Windows功能中禁用Hyper-V
  • 在BIOS中打开和关闭虚拟化
  • 重新登录Windows,启用Hyper-V。系统提示我有Hyper-V的更新,所以我做了更新。出现提示时重新启动。
  • 有效!

0

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


0

就我而言,我必须在BIOS设置中启用虚拟化。

  1. 重启电脑
  2. 在“重新启动”屏幕上时,按以下任意键,然后在Windows中输入BIOS设置:esc,f1,f2,f3,f4,f8或Delete
  3. 对于基于Intel的系统:
    • 按f7(高级模式)
    • 去高级
    • cpa配置
    • 启用虚拟化

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


0

就我而言,尽管我使用了上面提到的所有解决方案,但对我没有任何帮助。因此,我决定卸载docker并重新安装。

现在,在此过程中,我注意到我没有检查Use Windows containers instead of Linux containers (this can be changed after installation)以前的安装,这就是为什么我遇到上面的问题,而解决方案仍然无法解决问题。因此,请确保在运行桌面docker之前先对其进行检查,或者通过选中此选项将其卸载并再次安装。

Docker安装过程

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.