¿Es posible tener Docker ejecutándose dentro de vmware?

24

Ejecuto la estación de trabajo vmware para mis necesidades de desarrollo y tengo que mantener diferentes máquinas virtuales para entornos diff.

Docker parece permitir ejecutar entornos diff en contenedores, por lo tanto

  1. Dentro de mi VM Windows 10 x64, ¿puedo ejecutar Docker y usar diferentes imágenes y contenedores para desarrollar, construir y probar mi código? (Recuerde que estoy ejecutando mi entorno de desarrollo en VMware Workstation mientras Docker usa VirtualBox)

  2. ¿Cómo envío / llevo esta aplicación (código + base de datos + API web + .....) a producción? ¿La máquina de producción necesita ejecutar Docker bien?

Por favor ayuda a aclarar.

Actualizar

Por VMWare me refiero a VMWare workstation pro.

Hamza Ahmed Zia
fuente

Respuestas:

14

, es completamente posible ejecutar Docker en una VM. Docker es una solución de virtualización ligera, no virtualiza el hardware, por lo que no se verá afectado por los problemas típicos de las máquinas virtuales anidadas.

Sin embargo, el enlace de puertos puede ser un poco complicado, ya que tendrá que conectar de alguna manera su VM dev-env en VMware con Docker VM en VirtualBox.

También puede tener problemas si desea exponer las carpetas del host a un servicio en un contenedor Docker. Los sistemas de archivos de Windows son limitados en comparación con los de Linux en términos de granularidad de permisos y a algunos servicios no les gusta eso. (este problema no es específico de Docker)

En general, su aplicación no está bloqueada para Docker en producción. Los servicios dockerizados se comunican con el mundo a través de la red, no es diferente de lo que suelen hacer los servicios regulares. Sin embargo, una aplicación diseñada con Docker (o, más generalmente, la nube) en mente puede ser más resistente a fallas y más fácil de mantener.

gronostaj
fuente
6

Este blog habla exactamente sobre cómo usar Docker en Windows con VMWare Workstation. Incluso puedes usar Windows 7.

https://stefanscherer.github.io/yes-you-can-docker-on-windows-7/

Primero instale el administrador de paquetes Chocolatey para Windows (este es un comando de una línea)

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

luego instale Docker para usar la estación de trabajo VMWare

choco install -y docker  
choco install -y docker-machine  
choco install -y docker-machine-vmwareworkstation  

Crear una máquina virtual predeterminada

docker-machine --native-ssh create -d vmwareworkstation default  

Establece tus variables de entorno

docker-machine env | iex

Ahora ya está todo listo para comenzar.

vapor accionado
fuente
¡Excelente! Gracias por compartir esto. PD: La última línea es para PowerShell, sin "| iex" que funcionaría en cmd
Dmitry Gusarov
Chocolatey era nuevo para mí, este fue un buen punto de partida: hanselman.com/blog/…
ccook
1
En caso de que alguien más haya intentado esto sin leer el enlace, el comando "Crear un vm predeterminado" debería ser: docker-machine --native-ssh create -d vmwareworkstation default(Nota faltante "-")
Neil
2
  1. Sí, puedes ejecutar Docker en Windows. Windows en VMWare también funciona. Ejecutamos Docker en servidores Linux en VMWare.
  2. Lo más inteligente sería tener un acoplador en su máquina de producción también, pero sería posible copiar sus datos de los contenedores. Aunque no lo recomiendo.
    Puede usar docker savepara guardar las imágenes de la ventana acoplable en archivos.
    Creo que vale la pena mencionar que no se recomienda ejecutar varias aplicaciones dentro del mismo contenedor y no se recomienda almacenar datos dentro de sus contenedores, debe usar volúmenes para eso.
Mikael Kjær
fuente
Gracias por su respuesta, pero por favor aclare. Dice "Windows en VMWare también funciona", pero ¿quiso decir "Docker en VMWare también funciona"?
Hamza Ahmed Zia
@HamzaAhmedZia "VMWare" ¿Qué es exactamente? ESXi? ¿Puesto de trabajo? Sé específico y edita tu pregunta. La estación de trabajo solo existe en Linux y Windows.
Ramhound
@Ramhound me refiero a la estación de trabajo. Pregunta actualizada
Hamza Ahmed Zia
@HamzaAhmedZia, por lo que, en el contexto de Workstation, el autor de esta respuesta indica que puede ejecutar Docker dentro de una VM de Windows VMWare Workstation.
Ramhound
@Mikael ¿Cuál es su recomendación para enviar a producción ya que dice que no recomienda copiar los datos de los contenedores?
Hamza Ahmed Zia
0

Hay una gran diferencia entre el host docker (Linux o Windows):

Entonces, en el host acoplable de Windows en una estación de trabajo Vmware (en su Windows físico), ¡tiene una VM HyperV Linux anidada! Eso no es un gran problema, solo tenga cuidado de habilitar la virtualización anidada.

François

François YACOB
fuente
Ese punto acerca de que Windows aloja una VM HyperV es incorrecto si ejecuta Docker para Windows en modo Contenedor de Windows y usa LCoW lado a lado. Tiene otros problemas, pero la postura de los artículos vinculados sobre el agnosticismo de Docker basado en el sistema operativo host es miope, en el mejor de los casos, basado en hacia dónde se dirige Moby Project con el docker basado en contenedor de Windows en Win 10. Pero acabo de pasar una semana descubriendo que el borde sangrante todavía está sacando sangre, y no retrocedió al nivel de peligro de solo borde de ataque. En este punto, parece otros seis meses hasta que esté listo como conductor diario.
Tetsujin no Oni
0

¡Ejecutar contenedores Docker trae problemas de enlace de puertos ...!

¿Es una buena práctica ejecutar Docker dentro de la máquina virtual? La arquitectura para su referencia

Sistema operativo host -> VirtualMachine -> Hypervisor -> Server OS -> Docker

¿Es una buena práctica .. :)

Ram Manikandan
fuente