¿Cómo usar Vagrant y Docker-for-Windows en un sistema Hyper-V?

12

En el pasado, estaba usando VirtualBox (VB) y Vagrant (V) para ejecutar máquinas virtuales. Desde que instalé docker-for-windows (DfW) y ejecuté V, VB se queja de 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

Aunque este enlace indica que V es compatible con HV, el mensaje de error anterior es contradictorio. ¿Por qué VB se ve incompatible con HV? ¿Por qué V dice que es compatible con HV?

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

Discusión

La sugerencia de activar y desactivar Hyper-V no es la solución preferida, ya que lleva mucho tiempo.

Si fuera posible ejecutar V y DfW en el mismo sistema reemplazando VB, esta podría ser una opción.

030
fuente

Respuestas:

9

Confirmado por esta respuesta en SO que hace referencia a Microsoft Technet una vez que se activa Hyper-V, enmascara las instrucciones VT-X del procesador al sistema operativo en la parte superior y las ventanas se ejecutan como un invitado.

Docker para Windows necesita Hyper-V para funcionar, por lo que deshabilitarlo no es realmente una opción.

No hay forma de tener una caja virtual ejecutándose sobre Hyper-V y eso es bastante normal, no debe ejecutar un hipervisor dentro de un hipervisor, lucharán para orquestar el acceso de hardware.

En mi opinión, la mejor solución es crear una máquina virtual Hyper-V desde vagabundo con el proveedor de Hyper-V en lugar de máquinas virtuales de caja, de esta manera puede crear VM o contenedor en la misma sesión.

Nota al margen, vagabundo ya tiene una nota sobre esto en la página de documentación del proveedor de hyper-v (que se encuentra al buscar el enlace para agregar arriba):

Advertencia : Habilitar Hyper-V hará que VirtualBox, VMware y cualquier otra tecnología de virtualización deje de funcionar. Consulte esta publicación de blog para obtener una manera fácil de crear una entrada de inicio para iniciar Windows sin Hyper-V habilitado, si habrá ocasiones en que necesitará otros hipervisores.

Tensibai
fuente
0

Junto con Vagrant, puede usar el antiguo Docker Toolbox de la vieja escuela en lugar de 'Docker for Windows'. Eso significa que Docker será lento ya que se está ejecutando en una máquina virtual Linux, creo. https://docs.docker.com/toolbox/toolbox_install_windows/ Aparte de eso, sí, he estado reiniciando mi computadora todo lo que necesito HyperV para Docker o eliminarlo cuando quiero vagabundo.

Armyofda12mnkeys
fuente