Docker - Win10 Hyper-V 和 VirtualBox 冲突的问题

简介: Docker - Win10 Hyper-V 和 VirtualBox 冲突的问题

最近有同学问,在自己的Win10上,使用VirtualBox或相关的工具例如Vagrant,docker-machine等创建虚拟机,会提示电脑没有开启Intel的VT-x或者ADM-V,要求你去BIOS开启。

重启电脑进入BIOS,发现VT-x明明已经enable开启了,这是为什么呢?

此时的原因多半是因为,当前的win10开启了微软的Hyper-V虚拟化支持,解决方法也很简单,就是把Hyper-V关掉,最简单的关闭Hyper-V的办法是以管理员权限打开Powershell,然后运行

bcdedit /set hypervisorlaunchtype off

然后重启电脑即可。

那为什么开启了Hyper-V以后,VirtualBox或者VMware就用不了呢?这里有一篇很好的解答https://superuser.com/questions/1208850/why-virtualbox-or-vmware-can-not-run-with-hyper-v-enabled-windows-10

简单来讲,像VirtualBox或者VMware workstations,他们是二层的hypervisors(或者叫Type 2),什么叫2层的hypervisors,就是它需要运行在一个宿主机上,类似需要一个Host OS,这个OS需要直接运行在物理机上,然后我们在这个Host OS上安装VirtualBox或者VMware workstation。而像Hyper-V或者Vmware的ESxi,他们是level 1的hypervisors(或者叫Type 1),就是他们可以直接安装在物理机上,不需要Host OS。

理解了这一个以后,我们再看开启了Hyper-v的Win10,它就类似在Hyper-v上通过虚拟化安装运行了Win10,也就是此时的Win10我们就可以把它看成一台虚拟机了,在这个虚拟机里面,我们安装的VirtualBox,它无法访问到之前可以访问到的VT-x,所以也就无法使用虚拟化技术了。

对于这个限制,个人感觉VirtualBox后续可能会改进,因为随着一些需要Hyper-v支持的工具的退出,越来越多人可能会选择开启Hyper-V功能,比如WSL2的推出(https://devblogs.microsoft.com/commandline/wsl-2-is-now-available-in-windows-insiders/)

VirtualBox6.0已经加入了Nested Virtualization的支持,就是在一个虚拟机里通过virtualbox创建虚拟机,就是虚拟机的嵌套,但是这个只支持AMD的CPU,而且应该不支持Hyper-v的虚拟机里创建虚拟机这种嵌套。

等等吧,个人还是比较看好Virtualbox,也比较喜欢Vagrant。

(如果要重新打开Hyper-V,可以以管理员身份打开Powershell,然后运行 bcdedit.ext /set hypervisorlaunchtype auto start 然后重启电脑)

目录
相关文章
|
3月前
|
虚拟化 Docker Windows
win10使用Docker以及在天池比赛上提交容器镜像文件
win10使用Docker以及在天池比赛上提交容器镜像文件
63 1
|
存储 Ubuntu Linux
【云原生 | 02】分别在CentOS、Ubuntu、macOS、win7、win8、win10等不同操作系统下安装Docker详细教程
Docker引擎是使用Docker容器的核心组件,可以在主流的操作系统和云平台上使用, 包括 Linux 操作系统(如 Ubuntu、Debian、CentOS、Redhat 等),macOS 和 Windows 操作系统, 以及IBM、亚马逊、微软等知名云平台.........
377 0
【云原生 | 02】分别在CentOS、Ubuntu、macOS、win7、win8、win10等不同操作系统下安装Docker详细教程
|
5月前
|
Docker Windows 容器
Docker在win10上报错,error during connect: In the default daemon configuration on Windows
Docker在win10上报错,error during connect: In the default daemon configuration on Windows
|
2月前
|
关系型数据库 MySQL Docker
在win10安装docker及部署mysql5.6过程
在win10安装docker及部署mysql5.6过程
|
4月前
|
消息中间件 RocketMQ Docker
win10中 docker 安装rocketmq和解决坑connect to <172.17.0.3:10909> failed
win10中 docker 安装rocketmq和解决坑connect to <172.17.0.3:10909> failed
|
4月前
|
消息中间件 网络协议 Kafka
win10中docker安装kafka环境和操作
win10中docker安装kafka环境和操作
|
8月前
|
关系型数据库 MySQL 数据库
在win10上安装Docker desktop
并在docker中安装mysql
141 0
|
10月前
|
Ubuntu Linux Docker
win10下的docker桌面端配置ubuntu进行访问
win10下的docker桌面端配置ubuntu进行访问
142 0
|
10月前
|
Linux Go 虚拟化
谈一谈|在win10家庭版上用虚拟机安装docker
谈一谈|在win10家庭版上用虚拟机安装docker
135 0
|
10月前
|
存储 NoSQL Java
Win10上操作Docker,一样可以纵享丝滑!
Win10上操作Docker,一样可以纵享丝滑!
210 1