¿Pros y contras de usar contenedores de Windows en lugar de contenedores de Linux para Docker?

37

Estoy instalando Docker para Windows (CE) en Windows 10 y la primera pantalla me pregunta:

[] Utilice contenedores de Windows en lugar de contenedores de Linux (esto se puede cambiar después de la instalación)

Esto parece una decisión importante, sin embargo, la documentación de Docker , las preguntas frecuentes y el tutorial del contenedor de Windows no proporcionan información sobre por qué podría elegir uno sobre el otro.

Sería útil tener una descripción objetiva de las ramificaciones de esta elección:

  • ¿Una opción será más rápida que la otra?
  • ¿La decisión afecta el uso de los recursos del sistema (RAM, CPU)?
  • ¿Puedo ejecutar las mismas imágenes en ambos tipos?
  • ¿Es uno más seguro que el otro?

Cualquier otra distinción que pueda ayudarme a llegar a una conclusión sería muy bienvenida.

Duncan Jones
fuente
La respuesta a esto no está basada en la opinión. Y es aceptado. Entonces no hay necesidad de cerrar este.
Nils

Respuestas:

19

DEBE usar un host de Windows para contenedores de Windows, sin embargo, puede usar un host de Linux o un host de Windows para contenedores de Linux. Desde abril de 2018, incluso puede ejecutar ambos en paralelo .

¿Una opción será más rápida que la otra?

No. más rápido en qué?

¿La decisión afecta el uso de los recursos del sistema (RAM, CPU)?

Windows usa más recursos que Linux: Windows Nano es tan pequeño como parece

¿Puedo ejecutar las mismas imágenes en ambos tipos?

No. puede ejecutar aplicaciones .NET en contenedores mono pero no puede iniciar un contenedor de Windows en un host Linux y viceversa, no es lo mismo que la virtualización

¿Es uno más seguro que el otro?

De nuevo, ¿más seguro en qué? No. Ambos ejecutan Docker nativo, por lo que no se parece en nada a Hyper-v vs VMware y más como Linux vs Windows, por lo que todo depende de lo que va a ejecutar .net, python, java, ruby, etc.

Sum1sAdmin
fuente
2
Segundo esto. La lectura complementa esta respuesta containerjournal.com/2016/10/28/…
A.Newgate
44
Entonces, si elijo usar contenedores Linux, Docker activará una máquina virtual Linux Hyper-V para ejecutar mis contenedores, de lo contrario, ejecutará contenedores Windows de forma nativa. ¿Y no puedo ejecutar ambos tipos de contenedor al mismo tiempo?
Duncan Jones
1
Docker para Windows 10 le permite hacer esto, pero en producción tendría un enjambre
Docker con
Docker se basa en lxc (Linux): utilizará el mismo núcleo que el Docker-host. Si inicia Windows en un lxc, debe virtualizar o emular win. No estoy seguro si lo mismo se aplica a win-docker, ya que win admite linux.
Nils
1
@DuncanJones, solo 3 días después de que pregunte, había una publicación de blog en MSDN que explicaba que ahora PUEDE ejecutar contenedores de Windows y Linux en paralelo.
Jonas Heidelberg