【问题标题】:Docker for Windows error: "Hardware assisted virtualization and data execution protection must be enabled in the BIOS"Docker for Windows 错误:“必须在 BIOS 中启用硬件辅助虚拟化和数据执行保护”
【发布时间】:2017-02-02 17:49:35
【问题描述】:

我已安装 Docker,但在运行 GUI 时出现此错误:

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

似乎是一个错误,因为 Docker 就像命令行的魅力一样工作,但我想知道是否有人知道为什么会发生这种情况?

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

GUI 有一个奇怪的问题。

我的规格:

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

【问题讨论】:

    标签: windows docker


    【解决方案1】:

    如果启用了所述功能,则问题在于 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. 进入 Control Panel -> [Programs] -> [Windows Features] 并完全取消选中所有 Hyper-V 相关组件。重启系统。

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

    注意 1

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

    注意 2:

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

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

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

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

    【讨论】:

    • @Julien 尝试卸载并重新安装 Hyper-V 查看编辑
    • 如果其他人有类似的问题,我最近在 Windows 上的 Ubuntu 上安装了 Bash(它使用 Hyper-V)。在我卸载它并按照此答案中的步骤操作后,Docker 为我工作!
    • 我在 MacBook Pro 上的 Bootcamp 中运行 Windows 10。我有同样的问题。我首先尝试了dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All,但似乎没有解决它,所以我尝试了bcdedit /set hypervisorlaunchtype auto,Docker 现在正在为我运行。
    • 这不是我的问题,而是在 BIOS 中禁用了虚拟化。我必须在 BIOS 的安全选项卡中启用虚拟化功能,这导致 docker 之后立即工作。
    • 解决方案 B 在通过三星 SSD 迁移工具升级/切换我的 SSD 后对我有用。
    【解决方案2】:

    以下是对我来说可行的解决方案,请按照以下步骤操作

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

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

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

    干杯。

    【讨论】:

    • 为我工作,无需卸载 Intel HAXM,但现在 vmware 不再工作:(
    • 谢谢。此解决方案适用于 Windows 10 家庭版。
    • 在尝试了所有东西(甚至是 Windows 文档)一个小时后,这在 Windows 10 家庭版上也对我有用。
    • 像魅力一样工作!非常感谢。
    【解决方案3】:

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

    1. 重启电脑
    2. 当您在“重新启动”屏幕上时,按以下任意键并在 Windows 中输入 bios 设置:esc、f1、f2、f3、f4、f8 或删除
    3. 对于基于英特尔的系统:
      • 按 f7(高级模式)
      • 进入高级
      • 每次转化费用配置
      • 启用虚拟化

    经过以上所有步骤,它终于可以工作了:-)

    【讨论】:

    • 我也必须这样做。我认为这是一种艰难的方式,但它确实有效
    • 您是英雄!像魅力一样工作:)
    【解决方案4】:

    我卸载了 Intel HAXM 和 VirtualBox,Docker 现在可以运行了

    【讨论】:

    • 我已经为 Android 开发安装了 HAXM,并且不得不禁用 HyperV。删除它会恢复 Docker for Windows。现在谁能告诉我如何让 Android Emulator 和 Docker 共存?
    【解决方案5】:

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

    Docker 现在正在运行

    【讨论】:

      【解决方案6】:

      注意:如果您的 Windows 版本支持 Hyper-V,您可以通过在安装过程中选择使用 Hyper-V 直接安装 docker。 但是,如果您的 Windows 没有此支持,请遵循以下解决方案。


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

      然后我从here 更新了Linux 内核。 它起作用了

      我的规格:

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

          试试这些步骤

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

          【讨论】:

          • 似乎可以工作,我仍然可以使用 VMWare,所以谢谢
          【解决方案9】:

          【讨论】:

          • 对我来说,即使启用了 Hyper-V 并配置了 BIOS,它也不起作用;我仍然收到那个错误。禁用 Hyper-V + 重新启动 Windows,然后重新启用它解决了我的问题。
          【解决方案10】:

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

          【讨论】:

            【解决方案11】:

            在 PowerShell 中试试这个(启用管理员):

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

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

            【讨论】:

              【解决方案12】:

              我也使用无业游民。看来我一次只能使用一件事。卸载 vagrant/virtualBox 让我可以运行 docker,反之亦然

              【讨论】:

                【解决方案13】:

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

                【讨论】:

                  【解决方案14】:

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

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

                  【讨论】:

                  • 安装 Docker Desktop 时不再存在此选项。我已经尝试了此处列出的所有解决方案,但没有任何效果,即使任务管理器 > 性能显示虚拟化已启用。
                  • 我在去年使用 Windows 10 完成了这项工作。
                  【解决方案15】:

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

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

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

                  2- 选择 Hyper-V单击确定

                  【讨论】:

                    【解决方案16】:

                    卸载 Cygwin 后,我的问题得到了解决。

                    【讨论】:

                      【解决方案17】:

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

                      【讨论】:

                        【解决方案18】:

                        @银风暴

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

                        但是解决方案 A 对我不起作用。

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

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

                        启用管理程序

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

                        【讨论】:

                          【解决方案19】:

                          除了原来的答案,我做了以下事情:

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

                          【讨论】:

                            【解决方案20】:

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

                            【讨论】:

                              【解决方案21】:

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

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

                              再次启用 Hyper-V。重启。

                              【讨论】:

                                【解决方案22】:

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

                                我的解决方案:在“打开或关闭 Windows 功能”中我关闭了:

                                • hyper-v
                                • 容器
                                • 适用于 linux 的 windows 子系统

                                然后重启

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

                                我按照消息中的说明运行了命令

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

                                然后重启,瞧,Docker 又回来了 WSL2

                                【讨论】:

                                  【解决方案23】:

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

                                  【讨论】:

                                    【解决方案24】:

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

                                    【讨论】:

                                      猜你喜欢
                                      • 2021-06-13
                                      • 2017-03-25
                                      • 1970-01-01
                                      • 2012-11-05
                                      • 2013-08-31
                                      • 2016-02-24
                                      • 2014-02-23
                                      • 2015-03-09
                                      • 1970-01-01
                                      相关资源
                                      最近更新 更多