背景:
一直在用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,網絡和磁盤。