Jak korzystać z Vagrant i Docker-for-Windows w systemie Hyper-V?


12

Wcześniej korzystałem z VirtualBox (VB) i Vagrant (V) do uruchamiania maszyn wirtualnych. Ponieważ zainstalowałem Dockera dla Windows (DfW) i uruchomiłem V, VB narzeka na 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

Chociaż ten link wskazuje, że V obsługuje HV, powyższy komunikat o błędzie jest sprzeczny. Dlaczego VB wygląda na niekompatybilny z HV, dlaczego V mówi, że obsługuje HV i jak zapobiegać temu HV, aby móc ponownie użyć V.

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

Dyskusja

Sugestia włączania i wyłączania funkcji Hyper-V nie jest preferowanym rozwiązaniem, ponieważ jest czasochłonna.

Jeśli byłoby możliwe uruchomienie V i DfW w tym samym systemie przez zastąpienie VB, może to być opcja.

Odpowiedzi:


9

Potwierdzona tą odpowiedzią na SO odwołującą się do Microsoft Technet po aktywacji Hyper-V maskuje instrukcje VT-X procesora do systemu operacyjnego na nim, a Windows działa jak gość.

Docker dla Windows wymaga Hyper-V do działania, więc wyłączenie go nie jest tak naprawdę opcją.

Nie ma sposobu, aby wirtualna skrzynka działała na Hyper-V i jest to całkiem normalne, nie należy uruchamiać hiperwizora w hiperwizorze, będą walczyć o uporządkowanie dostępu do sprzętu.

Moim zdaniem najlepszym rozwiązaniem jest stworzenie maszyny wirtualnej Hyper-V z włóczęgi za pomocą dostawcy Hyper-V zamiast maszyn wirtualnych, w ten sposób można utworzyć maszynę wirtualną lub kontener w tej samej sesji.

Dodatkowa uwaga, włóczęga ma już na ten temat notatkę na stronie dokumentacji dostawcy hyper-v (znaleziona podczas wyszukiwania linku do dodania powyżej):

Ostrzeżenie : włączenie funkcji Hyper-V spowoduje, że VirtualBox, VMware i wszelkie inne technologie wirtualizacji przestaną działać. Zobacz ten post na blogu, aby w łatwy sposób utworzyć pozycję rozruchową w celu uruchomienia systemu Windows bez włączonej funkcji Hyper-V, jeśli będą potrzebne inne hiperwizory.


0

Oprócz Vagrant, możesz używać starej szkoły „Docker Toolbox” zamiast „Docker dla Windows”. Oznacza to, że Docker będzie działał wolno, ponieważ wierzę, że działa na maszynie wirtualnej z systemem Linux. https://docs.docker.com/toolbox/toolbox_install_windows/ Poza tym tak, ponownie uruchamiałem komputer wszystko, czego potrzebuję HyperV dla Dockera lub usuwam go, kiedy chcę włóczęgę.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.