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

时间:2016-09-25 08:45:26

标签: windows docker

我安装了Docker,运行GUI时出现此错误:

  

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

看起来像一个bug,因为Docker就像命令行中的魅力一样,但我想知道是否有人知道为什么会发生这种情况?

在你问之前,是的,我已经在BIOS中启用了虚拟化,并且英特尔处理器识别实用程序确认它已激活。 Docker,docker-machine和docker-从命令行编写所有工作,Virtualbox工作,从Debian或Ubuntu VM运行Docker。

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

我的规格:

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

24 个答案:

答案 0 :(得分:199)

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

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

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

  2. 使用

    启用Hyper-V

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

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

    使用

    启用Hypervisor
    bcdedit /set hypervisorlaunchtype auto
    

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

    解决方案C

    如果问题仍然存在,系统上的Hyper-V可能已损坏,那么

    1. 进入控制面板 - > [节目] - > [Windows功能]并完全取消选中所有与Hyper-V相关的组件。重启系统。

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

    3. 注1

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

      注2:

      Hyper-V 可以仅安装某些版本,例如:

        

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

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

        

      Windows 10 Home; Windows 10移动版; Windows 10移动企业版。

答案 1 :(得分:9)

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

答案 2 :(得分:9)

以下是工作解决方案,请按照以下步骤进行操作

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

  2. 在PowerShell中运行此cmd-&gt; bcdedit /set hypervisorlaunchtype auto

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

答案 3 :(得分:4)

我遇到了类似的问题。 我已在 bios 设置中启用 Intel Virtual Technology

enter image description here

然后我从 here 更新了 Linux 内核。 它奏效了

我的规格:

  • Microsoft Windows 10 家庭版 x64 单语言
  • 英特尔(R) 酷睿(TM) i5-7300 @ 2.50GHz

答案 4 :(得分:3)

打开任务管理器,然后单击性能选项卡。如果禁用虚拟化,则需要按照此处的说明启用虚拟化:https://blogs.technet.microsoft.com/canitpro/2015/09/08/step-by-step-enabling-hyper-v-for-use-on-windows-10/

答案 5 :(得分:1)

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

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

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

答案 6 :(得分:1)

尝试这些步骤

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

答案 7 :(得分:1)

答案 8 :(得分:1)

在我的情况下,我必须卸载hyper-v,重启pc,然后再次运行docker。

答案 9 :(得分:1)

对我来说,我只需要卸载VMware。

Docker现在正在运行

答案 10 :(得分:1)

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

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

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

答案 11 :(得分:0)

我不得不卸载 VirtualBox 才能让它工作,太可惜了!

答案 12 :(得分:0)

通过设置启用 Hyper-V 角色 右键单击 Windows 按钮/图标,然后选择“应用和功能”。

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

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

2- 选择 Hyper-V点击确定

enter image description here

答案 13 :(得分:0)

在安装VMWare之后,我遇到了相同的问题,我将其卸载了,但这不能解决问题。

对我来说解决方案:在“打开或关闭Windows功能”中,我关闭了:

  • hyper-v
  • 容器
  • 用于Linux的Windows子系统

然后重新启动

重启后,我从docker得到了以下消息:

enter image description here

我按照消息中的提示运行了命令

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

然后重新启动并开始工作,Docker再次使用WSL2

答案 14 :(得分:0)

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

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

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

答案 15 :(得分:0)

就我而言,即使我使用了上面提到的所有解决方案,但对我来说都没有用。所以我决定卸载docker,然后重新安装。

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

Docker Installation Process

答案 16 :(得分:0)

如果上面的解决方案不起作用,那么 转到命令提示符并键入 systeminfo。检查 Hyper-V 要求部分。 如果列出的所有 Hyper-V 要求的值为 Yes,则您的系统可以运行 Hyper-V 角色。 在我的情况下,固件中的虚拟化启用是否。 因此,我确实通过在我的 HP 笔记本电脑中启用虚拟化技术来启用系统 bios。 请访问此链接以启用它: https://2nwiki.2n.cz/pages/viewpage.action?pageId=75202968

答案 17 :(得分:0)

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

答案 18 :(得分:0)

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

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

答案 19 :(得分:0)

@银风暴

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

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

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

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

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

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

答案 20 :(得分:0)

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

答案 21 :(得分:0)

我在这里尝试了许多建议,但未能使其运行。最后对我有用的是直接进入BIOS来激活它。以下文章有很大帮助: https://www.nextofwindows.com/how-to-enable-configure-and-use-hyper-v-on-windows-10

答案 22 :(得分:0)

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

答案 23 :(得分:0)

当我卸载Cygwin时,对我的问题已解决。