Actualmente utilizamos un servidor basado en Windows para alojar 2 máquinas virtuales. Una VM usa Windows con una aplicación de Windows y la otra VM usa Linux con una aplicación de Linux.
¿Es posible el siguiente escenario?
Servidor desnudo con Windows 2016 (sin máquinas virtuales). Instalar el motor Docker. Instalar el contenedor de aplicaciones de Windows. Instale el contenedor de la aplicación Linux.
¿El motor Docker abstrae el sistema operativo de modo que esta configuración ejecutará ambas aplicaciones? ¿Significa que el motor Docker funciona como un "intérprete" similar a cómo se puede ejecutar el código Java en varios sistemas operativos?
Respuestas:
No, no lo hace. Docker utiliza la contenedorización como tecnología central, que se basa en el concepto de compartir un núcleo entre contenedores. Si una imagen de Docker se basa en un núcleo de Windows y otra se basa en un núcleo de Linux, no puede ejecutar esas dos imágenes en el mismo sistema operativo.
Cuando instala Linux Docker en Windows, en realidad está configurando una máquina virtual Linux en Hyper-V, los detalles de LinuxKit están aquí . Puede abrir la consola Hyper-V y ver una VM llamada "MobyLinuxVM". Se ha realizado un gran trabajo para abstraerlo de usted, por ejemplo, el
docker
binario puede conectarse a la VM de Linux y ejecutar los mismos comandos a los que está acostumbrado, la conexión en red entre el host y la VM intenta ser fluida, montaje de volumen, etc. no Docker que te permite ejecutar una imagen Docker de Linux en Windows, es simplemente una virtualización antigua.fuente
Sí, enloquece, ¡puedes ejecutar lo que quieras en el contenedor siempre que el host admita la virtualización y pueda ejecutar el docker binario!
fuente