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

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

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

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

GUI有个奇怪的问题。

我的规格:

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


当前回答

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

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

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

其他回答

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

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

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

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

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

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

hyper - v 容器 Windows Linux分系统

然后重新启动

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

我执行了消息中说的命令

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

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

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

现在在这个过程中,我注意到我在之前的安装中没有勾选使用Windows容器而不是Linux容器(这可以在安装后更改),这就是为什么我得到了上面的问题,解决方案仍然没有解决它。所以确保在运行desktop docker之前检查它,或者通过检查这个选项卸载它并重新安装它。

I have tried many suggestions above but docker keeps complaining about hardware assisted virtualization error. Virtualization is enabled in BIOS, and also Hyper-V is installed and enabled. After a few try and errors, I eventually downloaded coreinfo tool and found out that Hypervisor was not actually enabled. Using ISE (64 bit) as admin and run command from above Solution B and that enables Hypervisor successfully (checked via coreinfo -v again). After restart, docker is now running successfully.