背景:
一直在用VirtualBox + Vagrant 来做基于Linux、Nginx、NodeJS 的WEB开发,之前在Mac下也一直在用Docker,在macOS下二者共存木有问题,可是新公司配的Lenovo,自己装的Win 10,在使用vagrant开发一段时间后又想折腾下docker,所以今天又安装了docker,安装的过程中最后确定之前docker是弹了一个窗提示大概是说要使用Hyper-v,禁掉VirtualBox,我没管,当时没get为毛要禁掉VB,确定之后重启,我要继续开发我的网站,
vagrant up
执行一半,系统蓝屏,等待我关机重启...
实际之前我在家做开发时遇到过这个问题,当时要忙着LOL,就搁置了...今天又遇到,要解决一下了!
google:
vagrant docker conflict
docker vagrant coexist
有不少链接,看了不少但感觉不是我想要的,有个哥们的情况跟我很类似-他做的很牛逼,直接搞两个系统启动项,一个启动后用Hyper-V,一个则不。
我不想搞这么复杂,工作要紧,先不管Docker了,因为Docker使用Hyper-v虚拟机,直接 disable 掉它算了。
google:
disable hyper-v
就是禁用掉 Hyper-V 这个 windows 功能。
- 打开设置
- 搜索
windows 功能
或者windows features
如果是英文的话 - Uncheck
Hyper-V
- 重启
那么到底两者为啥不能共存?
因为Hyper-V与VirtualBox都需要一个叫Hypervisor
的东西,不幸的是系统不能同时run两个Hypervisor
.
你说啥?
Hypervisor——一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也可叫做VMM( virtual machine monitor ),即虚拟机监视器。
Hypervisors是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisors不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。