Saltar al contenido

¿Puedo ejecutar Docker en una máquina virtual?

Si encuentras alguna incompatibilidad con tu código o trabajo, recuerda probar siempre en un entorno de testing antes aplicar el código al proyecto final.

Solución:

Si la VM es Linux, puede hacer esto sin ningún problema: en Linux, Docker es esencialmente un chroot bien trabajado. Por lo tanto, la ventana acoplable de Linux no es virtualización.

En el caso de Windows, no es tan fácil. Windows Docker usa internamente Hyper-V para emular los contenedores. Lo que significa que solo puede ejecutar, si puede usar la virtualización anidada:

  1. En su máquina host se ejecuta una máquina virtual de Windows
  2. Dentro de su máquina virtual de Windows, ejecuta un HyperV
  3. HyperV es administrado por la ventana acoplable instalada en su Windows virtual.

Probé qemu/kvm, virtualbox y vmware player. Los configuré profunda y fuertemente, los hackeé, hice todo lo posible por hacerlo. Solo funcionó el último (VMWare).

Hay costos de velocidad significativos, pero puede ser útil para el desarrollo en Linux y luego para realizar una prueba de prueba en configuraciones de Windows.

Necesitarás mucha ram. Al menos 16G. 32G es mejor. Una configuración relativamente útil sería:

  • RAM física de 32 GB para el host físico
  • RAM virtual de 12 GB para la VM de Windows que se ejecuta en ella
  • RAM virtual de 8GB dentro de la máquina virtual de Windows para el host HyperV Linux.

A veces habrá un poco de errores, pero solo su HyperV se bloqueará, su Win virtual o su máquina host no. Está bien probar un contenedor docker en una máquina Windows, lo que ha desarrollado en Linux. No cree servidores de misión crítica de esta manera. 🙂

Está utilizando Docker Machine en su VM de Windows, que en realidad va a crear una VM de Linux dentro de la VM de Windows en su Mac. Puede hacerlo, pero debe habilitar la virtualización anidada, lo cual no estoy seguro de que pueda hacer en Parallels 7.

En su lugar, puede ejecutar Docker Machine en la Mac directamente y usar Parallels para crear la máquina virtual Linux, lo que significa que Docker se ejecuta en una máquina virtual Linux en su Mac y no necesita virtualización anidada.

O preferiblemente, use Docker para Mac si su sistema operativo lo admite, es el producto más reciente y tiene una integración de host mucho mejor que Docker Machine.

Si usaría Windows 10 Pro o Enterprise e Hyper-V, todo lo que debe hacer es habilitar la virtualización anidada. En su host, simplemente ejecute (con su invitado apagado):

> Set-VMProcessor -VMName  -ExposeVirtualizationExtensions $true

Ahora puede iniciar su invitado y ejecutar Docker Desktop normalmente.

Si haces scroll puedes encontrar las referencias de otros programadores, tú además eres capaz dejar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *