Wie verwende ich Vagrant und Docker-for-Windows auf einem Hyper-V-System?


12

Früher habe ich VirtualBox (VB) und Vagrant (V) verwendet , um VMs auszuführen. Da ich Docker-for-Windows (DfW) installiert und V ausgeführt habe, beschwert sich VB über 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

Obwohl dieser Link anzeigt, dass V HV unterstützt, ist die obige Fehlermeldung widersprüchlich. Warum sieht VB mit HV nicht kompatibel aus, warum sagt V, dass es HV unterstützt und wie verhindert werden kann, dass HV deaktiviert werden muss, um V wieder zu verwenden.

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

Diskussion

Der Vorschlag, Hyper-V ein- und auszuschalten, ist nicht die bevorzugte Lösung, da er zeitaufwändig ist.

Wenn es möglich wäre, V und DfW auf demselben System auszuführen, indem VB ersetzt wird, könnte dies eine Option sein.

Antworten:


9

Bestätigt durch diese Antwort auf SO, die auf Microsoft Technet verweist, sobald Hyper-V aktiviert ist, maskiert es die VT-X-Anweisungen des Prozessors gegenüber dem Betriebssystem darüber und Windows läuft wie ein Gast.

Docker für Windows benötigt Hyper-V, daher funktioniert das Deaktivieren nicht wirklich.

Es gibt keine Möglichkeit, eine virtuelle Box auf Hyper-V auszuführen, und das ist ganz normal. Sie sollten keinen Hypervisor innerhalb eines Hypervisors ausführen. Sie kämpfen darum, den Hardware-Zugriff zu orchestrieren.

Meiner Meinung nach besteht die beste Problemumgehung darin, eine virtuelle Hyper-V-Maschine aus Vagabunden mit dem Hyper-V-Anbieter anstelle von virtuellen Box-Maschinen zu erstellen. Auf diese Weise können Sie VMs oder Container in derselben Sitzung erstellen.

Randnotiz, Vagabund hat bereits einen Hinweis dazu auf der Dokumentationsseite des Hyper-V-Anbieters (gefunden bei der Suche über den oben hinzuzufügenden Link):

Warnung : Wenn Sie Hyper-V aktivieren, funktionieren VirtualBox, VMware und andere Virtualisierungstechnologien nicht mehr. In diesem Blogbeitrag finden Sie eine einfache Möglichkeit, einen Starteintrag zum Starten von Windows ohne aktiviertes Hyper-V zu erstellen. In bestimmten Fällen benötigen Sie andere Hypervisoren.


0

Neben Vagrant können Sie anstelle von Docker für Windows auch die alte Legacy-Docker-Toolbox verwenden. Das bedeutet, dass Docker langsam sein wird, da es meiner Meinung nach auf einer Linux-VM ausgeführt wird. https://docs.docker.com/toolbox/toolbox_install_windows/ Abgesehen davon habe ich meinen Computer neu gestartet, alles, was ich für HyperV für Docker benötige, oder es entfernt, wenn ich Vagabund möchte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.