Windows 10 下 Docker与 Vagrant 不能共存

背景:

一直在用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 功能。

  1. 打开设置
  2. 搜索windows 功能 或者 windows features如果是英文的话
  3. Uncheck Hyper-V
  4. 重启

那么到底两者为啥不能共存?

因为Hyper-V与VirtualBox都需要一个叫Hypervisor的东西,不幸的是系统不能同时run两个Hypervisor.

你说啥?

Hypervisor——一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也可叫做VMM( virtual machine monitor ),即虚拟机监视器。

Windows 10 下 Docker与 Vagrant 不能共存_第1张图片

Hypervisors是一种在 虚拟环境中的“元” 操作系统。他们可以访问服务器上包括磁盘和内存在内的所有 物理设备。Hypervisors不但协调着这些硬件资源的访问,也同时在各个 虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机 客户端的 操作系统同时会分配给每一台虚拟机适量的 内存, CPU, 网络和 磁盘。

你可能感兴趣的:(Windows 10 下 Docker与 Vagrant 不能共存)