Ubuntu en Windows 10: Docker vs WSL

11

Entiendo que actualmente es posible ejecutar Ubuntu en Windows 10 de dos maneras diferentes:

  1. Uso del subsistema de Windows para Linux (WSL).
  2. Instalar docker para Windows 10 y usar un contenedor con Ubuntu.

Sin embargo, no pude encontrar una explicación fácil de entender de cuáles son las diferencias entre ellos (hablando de aplicaciones), así como las ventajas y desventajas.

Encontré una publicación que habla sobre el uso de Docker en WSL: Ubuntu a través de (Windows Linux Subsystem) y Docker . Pero estoy hablando de usarlo directamente en Windows 10. Así que agradeceré cualquier información sobre estos dos.

alvgom
fuente
No soy experto en ninguno de ellos para escribir una respuesta, pero mi voto va a Docker. La razón es que Docker implica virtualización, por lo que las cosas deberían funcionar. WSL por otro lado está lleno de errores. Funciona para puntos de referencia, diversión y principalmente desarrollo; pero si está a punto de implementar algo serio, esta no es su elección, al menos todavía no.
Hola Ángel el

Respuestas:

14

Actualizado el 20/02/2018 para reflejar los cambios introducidos en WSL2

¡Hola! Microsoft PM trabajando en WSL y Command Line aquí.

WSL le permite ejecutar binarios ELF-64 de Linux nativos y no modificados directamente en Windows, y le permite ejecutar sus herramientas Linux favoritas sobre su sistema operativo "host" de Windows.

WSL1 adoptó el enfoque de agregar una capa compatible con syscall de Linux en la parte superior del kernel de NT, permitiendo que los binarios de Linux se ejecuten sobre NT, compartiendo el mismo sistema de archivos subyacente, redes, lista de procesos, etc. que el sistema operativo host.

El WSL2 que pronto se lanzará, por otro lado, ejecuta binarios de distribuciones dentro de contenedores de Linux, encima de un núcleo de Linux real, dentro de una máquina virtual liviana que asigna solo la RAM necesaria para las aplicaciones que ejecuta y luego libera RAM liberada sistema operativo host. Esto proporciona una compatibilidad 100% con Linux, y permite que sus herramientas Linux se ejecuten con un rendimiento casi nativo, y consume los recursos mínimos necesarios del host, asegurando que su máquina funcione de manera rápida y sin problemas.

Antes de WSL2, se podía ejecutar el cliente Docker en WSL1, utilizándolo para conducir Docker para Windows corriendo sobre Hyper-V en el host local, o para administrar un servidor Docker remoto. Pero no se puede ejecutar Docker Engine en WSL1 por muchas razones técnicas.

Sin embargo, puede hacer lo mismo en Docker en WSL2, pero también puede ejecutar Docker Engine sobre WSL si lo prefiere. Esta es la ruta preferida y futura de Docker para ejecutar Docker en el escritorio de Windows .

Para obtener más información sobre WSL, revise los videos y documentos aquí: https://aka.ms/learnwsl

Rich Turner
fuente
Creo que esta respuesta se refiere a WSL, WSL 2 ejecuta un kernel de Linux personalizado, que interactúa con Windows. Creo que el kernel de Linux personalizado de Windows se ejecuta en una máquina virtual.
Jordan Stewart
1
Lo hizo. Acabo de publicar una actualización para reflejar mejor nuestra realidad WSL2 :)
Rich Turner
2

Eso es correcto. Una cosa que no menciona es que WSL actualmente es bastante lento en io, incluso con un ssd rápido / mucha CPU ram / 8-core xeon. Esto sigue siendo un problema en 01/2019. Acabo de hacer un ray @ DESKTOP-O0MT13B: / mnt / c / Users / rayjh $ dd if = / dev / zero of = test bs = 64k count = 16k conv = fdatasync en mi estación de trabajo con un Samsung SSD y solo obtuve 97.6 MB / s.

Al ejecutar Ubuntu LTS de metal desnudo, este cuadro obtendrá VARIAS veces eso. No importa los interminables problemas cuando intentas combinar WSL con VSCODE.

Estoy borrando Windows 10 de aquí e instalando ubuntu 18.04LTS.

rayj
fuente
No necesita ser tóxico, especialmente al final. Por el contrario, díganos qué hizo para investigar la causa de los problemas que enfrenta y si son problemas conocidos o no y si alguien está trabajando para solucionarlos o no. Estoy seguro de que sí. Y no necesita desinstalar Windows, solo necesita instalar el administrador de Hyper-V e instalar Ubuntu rápidamente y está listo para un entorno de desarrollo de Linux si desea trabajar desde un escritorio virtual de Linux. De lo contrario, siga usando WSL y espere a que se solucionen sus problemas. 97 MB / s no es tan lento.
Paul-Sebastian Manole
AFAIK los problemas de velocidad están relacionados con el subsistema de acceso a archivos de Windows y se está trabajando en una solución alternativa.
Paul-Sebastian Manole
WSL todavía parece lento. Pero tiene un tiempo de inicio muy rápido y permite el uso de herramientas cli linux comunes. Mapear el sistema de archivos de Linux y Windows parece complicado.
Jordan Stewart
Se ha vuelto perceptiblemente más rápido. Sin embargo, intenté usar miniconda e instalar paquetes y todavía era un poco lento.
Rayj