¿Docker permite que los contenedores sean independientes del sistema operativo?

9

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?

nanonerd
fuente
1
Los detalles están aquí , principalmente necesita una máquina virtual Linux para ejecutar contenedores Linux solo para proporcionar un kernel Linux ... los contenedores Docker son procesos aislados, por lo que necesitan un host, Linuxux es solo eso, pero está integrado dentro del comando Docker Run para facilitar utilizar.
Tensibai
¿No debería ser esto una respuesta?
Dan Cornilescu
2
@Dan actualmente en la cumbre de chefs, me faltaba un poco para escribir una respuesta correcta :) así que solo dejé un comentario
Tensibai
No estoy seguro de lo que está haciendo su aplicación de Windows, pero también podría considerar cambiar a core de punto ya que es multiplataforma. De esa manera puedes ejecutar todo en Linux.
frennky

Respuestas:

7

¿El motor Docker abstrae el sistema operativo de modo que esta configuración ejecutará ambas aplicaciones?

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 dockerbinario 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.

usuario2640621
fuente
2

Sí, enloquece, ¡puedes ejecutar lo que quieras en el contenedor siempre que el host admita la virtualización y pueda ejecutar el docker binario!

Briansbum
fuente
¿Todavía creo que hay algunos detalles para ejecutar contenedores de Windows / Linux, o?
Peter Muryshkin
Creo que también necesitas LinuxKit, pero terminas con la misma funcionalidad que está disponible en Linux
Briansbum