Comment utiliser Vagrant et Docker-for-Windows sur un système Hyper-V?

12

À l'époque, j'utilisais VirtualBox (VB) et Vagrant (V) pour exécuter des machines virtuelles. Depuis que j'ai installé Docker-for-Windows (DfW) et exécuté V, VB se plaint d' 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

Bien que ce lien indique que V prend en charge HV, le message d'erreur ci-dessus est contradictoire. Pourquoi VB semble-t-il incompatible avec HV, pourquoi V dit qu'il prend en charge HV et comment empêcher que HV soit désactivé pour pouvoir utiliser à nouveau V.

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

Discussion

La suggestion d'activer et de désactiver Hyper-V n'est pas la solution préférée car elle prend du temps.

S'il était possible d'exécuter V et DfW sur le même système en remplaçant VB, cela pourrait être une option.

030
la source

Réponses:

9

Confirmé par cette réponse sur SO référençant Microsoft technet une fois que Hyper-V est activé, il masque les instructions VT-X du processeur à l'OS au-dessus et les fenêtres fonctionnent comme un invité.

Docker pour Windows a besoin d'hyper-V pour fonctionner, donc le désactiver n'est pas vraiment une option.

Il n'y a aucun moyen d'avoir une boîte virtuelle en cours d'exécution sur Hyper-V et c'est tout à fait normal, vous ne devriez pas exécuter un hyperviseur dans un hyperviseur, ils se battront pour orchestrer les accès matériels.

À mon avis, la meilleure solution consiste à créer une machine virtuelle hyper-V à partir de vagrant avec le fournisseur hyper-V au lieu de machines virtuelles, de cette façon, vous pouvez créer une machine virtuelle ou un conteneur sur la même session.

Remarque, vagabond a déjà une note à ce sujet dans la page de documentation du fournisseur hyper-v (trouvée lors de la recherche sur le lien pour ajouter ci-dessus):

Avertissement : l'activation d'Hyper-V entraînera la désactivation de VirtualBox, VMware et de toute autre technologie de virtualisation. Voir ce billet de blog pour un moyen facile de créer une entrée de démarrage pour démarrer Windows sans Hyper-V activé, s'il y aura des moments où vous aurez besoin d'autres hyperviseurs.

Tensibai
la source
0

Parallèlement à Vagrant, vous pouvez utiliser l'ancienne «Docker Toolbox» héritée de l'école au lieu de «Docker pour Windows». Cela signifie que Docker sera lent depuis son exécution sur une machine virtuelle Linux, je crois. https://docs.docker.com/toolbox/toolbox_install_windows/ Autre que cela, oui j'ai redémarré mon ordinateur tout ce dont j'ai besoin HyperV pour Docker ou le supprimer quand je veux vagabonder.

armyofda12mnkeys
la source