Come usare Vagrant e Docker-per-Windows su un sistema Hyper-V?


12

In passato , stavo usando VirtualBox (VB) e Vagrant (V) per eseguire VM. Da quando ho installato la finestra mobile per Windows (DfW) ed eseguo V, VB si lamenta di Hyper-V (HV) .

[user@localhost ~]$ 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

Sebbene questo collegamento indichi che V supporta HV, il messaggio di errore sopra riportato è contraddittorio. Perché VB sembra incompatibile con HV, perché V afferma che supporta HV e come impedire che HV debba essere disabilitato per poter utilizzare nuovamente V.

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

Discussione

Il suggerimento di accendere e spegnere Hyper-V non è la soluzione preferita in quanto richiede tempo.

Se fosse possibile eseguire V e DfW sullo stesso sistema sostituendo VB, questa potrebbe essere un'opzione.

Risposte:


9

Confermato da questa risposta su SO che fa riferimento a technet Microsoft una volta attivato Hyper-V, maschera le istruzioni VT-X del processore sul sistema operativo sopra di esso e Windows gira come un ospite.

Docker per Windows ha bisogno di hyper-V per funzionare, quindi disabilitarlo non è davvero un'opzione.

Non c'è modo di avere la virtual box in esecuzione su Hyper-V ed è abbastanza normale, non dovresti eseguire un hypervisor all'interno di un hypervisor, si batteranno per orchestrare l'accesso all'hardware.

La migliore soluzione a mio avviso è quella di creare una macchina virtuale hyper-V da Vagrant con il provider hyper-V invece delle macchine box virtuali, in questo modo è possibile creare VM o container nella stessa sessione.

Nota a margine, Vagrant ha già una nota a riguardo nella pagina di documentazione del provider hyper-v (trovata durante la ricerca del link da aggiungere sopra):

Avvertenza : l'attivazione di Hyper-V farà sì che VirtualBox, VMware e qualsiasi altra tecnologia di virtualizzazione non funzionino più. Vedi questo post del blog per un modo semplice per creare una voce di avvio per avviare Windows senza Hyper-V abilitato, se ci saranno volte avrai bisogno di altri hypervisor.


0

Oltre a Vagrant, è possibile utilizzare la "Docker Toolbox" legacy della vecchia scuola anziché "Docker per Windows". Ciò significa che Docker sarà lento poiché è in esecuzione in una VM Linux credo. https://docs.docker.com/toolbox/toolbox_install_windows/ Oltre a questo, sì, ho riavviato il mio computer tutto ciò di cui ho bisogno HyperV per Docker o rimuoverlo quando voglio vagabondo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.