一千萬個為什麽

搜索

如何在Hyper-V系統上使用Vagrant和Docker-for-Windows?



回到當天,我正在使用 VirtualBox(VB)Vagrant(V)來運行虛擬機。由於我安裝了 docker-for-windows(DfW)並運行V,因此VB抱怨關於 Hyper-V(HV)

[[email protected] ~]$ vagrant up
Stderr: VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component
ConsoleWrap, interface IConsole

雖然此鏈接表示V支持HV,但上述錯誤消息是矛盾的。為什麽VB看起來與HV不兼容,為什麽V表示它支持HV以及如何防止HV需要被禁用以便再次使用V.

| Product    | Version |
|:-----------|--------:|
| Vagrant    |   2.0.1 |
| VirtualBox |   5.2.4 |
| Windows    |      10 | 

討論</強>

The suggestion to switch Hyper-V on and off is not the preferred solution as it is time consuming.

如果可以通過替換VB在同一個系統上運行V和DfW,這可能是一個選項。

轉載註明原文: 如何在Hyper-V系統上使用Vagrant和Docker-for-Windows?

一共有 1 個回答:

通過 SO 上的這個答案進行確認,引用 Microsoft technet 一旦Hyper-V啟動激活它將處理器的VT-X指令屏蔽到其頂層的操作系統上,並且Windows像來賓一樣運行。

Docker for Windows需要hyper-V才能工作,所以禁用它並不是一個真正的選擇。

沒有辦法讓虛擬機在Hyper-V之上運行,這很正常,你不應該在虛擬機管理程序中運行虛擬機管理程序,他們會爭取安排硬件訪問。

我認為最好的解決方法是使用 hyper-V提供程序而不是虛擬機器,這樣你就可以在同一個會話上創建虛擬機或容器。

註意,vagrant已經在hyper-v提供程序文檔頁面中有關於此的說明(在搜索以上添加的鏈接時發現):

警告:啟用Hyper-V將導致VirtualBox,VMware和任何其他虛擬化技術不再起作用。請參閱此博客文章,了解如何使用簡單方法創建引導條目,以在沒有Hyper的情況下啟動Windows -V啟用,如果有時您需要其他虛擬機管理程序。