安装docker报错Hardware assisted virtualization and data execution protection must be enabled in the BIOS

win10安装docker时报错Hardware assisted virtualization and data execution protection must be enabled in the BIOS,这就很奇怪了,明明是在blos已经启用了虚拟硬件了,怎么还会报错呢?

检查是否启用了虚拟化

重启电脑进入blos界面,确实开启了虚拟化,开机后打开进程管理器,也确实生效了。
安装docker报错Hardware assisted virtualization and data execution protection must be enabled in the BIOS_第1张图片

检查Hyper-V Manager是否安装以及开启

打开windows的【启用或关闭windows功能】,查看是否安装Hyper-V,没选的勾选,我这已经是选了,然而还是不行,郁闷
安装docker报错Hardware assisted virtualization and data execution protection must be enabled in the BIOS_第2张图片

设置Hyper-V管理器

按照官方的错误说明指引,来到了设置管理器这一步骤,这一步骤官方说“要求通过检查Hyper-V管理器右侧“操作”选项卡上的“虚拟交换机管理器”,确保已启用DockerNAT。”
安装docker报错Hardware assisted virtualization and data execution protection must be enabled in the BIOS_第3张图片
进入虚拟交换机管理器。
安装docker报错Hardware assisted virtualization and data execution protection must be enabled in the BIOS_第4张图片
然后官方文档是这样说的:“Set up an external network switch. If you plan at any point to use Docker Machine to set up multiple local VMs, you need this anyway, as described in the topic on the Hyper-V driver for Docker Machine. You can replace DockerNAT with this switch.”,意思就是要设置成外部网络。木问题,设置就设置,然而设置之后,再打开docker,docker直接又还原回去了…

Cleanup

官方文档又说了:“If previous steps fail to solve the problems, follow steps on the Cleanup README“,就是要清除某些网络设置信息。详情请见Readme
我按文档的步骤执行脚本,然而并没有什么卵用,反而还报了另外一个错误。

解决方法

其实我这个应该算是 Hyper-V异常导致的,所以要么禁用之后再启用,要么直接运行以下命令,算是重启这个服务:

bcdedit /set hypervisorlaunchtype auto

之后再重启电脑就ok了,可以愉快地开始docker旅程了。

你可能感兴趣的:(docker)