Con Docker Desktop ejecutándose en WSL 2, los usuarios pueden aprovechar los espacios de trabajo de Linux y evitar tener que mantener scripts de compilación de Linux y Windows.
¿Cómo es diferente?
Las aplicaciones que se ejecutan en la ventana acoplable se limitan a aplicaciones que son compatibles de forma nativa con el sistema operativo host.
En otras palabras, Docker para Windows solo puede alojar aplicaciones de Windows dentro de contenedores de Docker, y Docker en Linux solo admite aplicaciones de Linux.
Docker en Windows siempre ha sido un desafío, antes, cuando usé Docker por primera vez en 2017, tenía las siguientes limitaciones:
Tenía un requisito estricto de las versiones de Windows compatibles, varios contenedores no estaban disponibles para la plataforma de Windows. El soporte para los sistemas de orquestación como Kubernates y Mesos no estaba completo.
La mayor parte de esto estaba relacionado con el hecho de que Docker se escribió y creó originalmente para Linux.
Hubo algunas soluciones para que funcionara en WSL (Subsistema de Windows para Linux), pero eran complicadas e incompletas.
Windows Subsystem for Linux (WSL) 2 presenta un cambio arquitectónico significativo, ya que es un kernel de Linux completo creado por Microsoft , lo que permite que los contenedores de Linux se ejecuten de forma nativa sin emulación.
A partir de WSL2, Docker puede ejecutarse en su flujo completo en Windows y puede usar imágenes creadas para Linux.
El siguiente tutorial lo ayudará a instalar Docker en su WSL en Windows.
Antes de instalar el backend Docker Desktop WSL 2, debe completar los siguientes pasos:
Instale Windows 10, versión 2004 o superior (compilación 19041 o superior).
Al momento de escribir este artículo, para actualizar a Windows 10 versión 2004 (Build 19041), deberá unirse al programa Windows Insider y seleccionar el anillo "Release Preview". El lanzamiento público debería llegar a fines de mayo.
Habilite la función WSL 2 en Windows.
Abra PowerShell como administrador y ejecute:
dism.exe /online /enable-feature /featurename :Microsoft-Windows-Subsystem-Linux /all /norestart
Habilite el componente opcional 'Plataforma de máquina virtual'
Abra PowerShell como administrador y ejecute:
dism.exe /online /enable-feature /featurename :VirtualMachinePlatform /all /norestart
Reinicie su máquina en este punto para completar la instalación de WSL y actualizar a WSL 2.
Instale el paquete del kernel de Linux necesario para actualizar la versión de WSL a WSL 2.
Los detalles del kernel están en el siguiente enlace,
https://docs.microsoft.com/en-us/windows/wsl/wsl2-kernel
El instalador está en,
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
Establezca WSL 2 como su versión predeterminada
Abra PowerShell como administrador y ejecute:
wsl -- set - default -version 2
Instale la distribución de Linux que prefiera
Abra Microsoft Store y seleccione su distribución de Linux favorita.
Algunos de los más populares están a continuación:
La primera vez que inicie una distribución de Linux recién instalada, se abrirá una ventana de la consola y se le pedirá que espere uno o dos minutos para que los archivos se descompriman y se almacenen en su PC. Todos los lanzamientos futuros deberían tomar menos de un segundo.
A continuación, deberá crear una cuenta de usuario y una contraseña para su nueva distribución de Linux.
Compruebe la lista de distribuciones de Linux,
wsl -l -v
Configurar la distribución para usar WSL 2
wsl -- set - version <distribution name> <versionNumber>
Descargue Docker Desktop Stable 2.3.0.2 o una versión posterior .
Asegúrese de seleccionar a continuación durante la instalación,
Ejecute Docker Desktop.
Eso es todo.
Ahora ha instalado Docker en WSL 2.
Verifíquelo ejecutándolo en la terminal de Ubuntu/Linux.
WSL 2 también nos permite configurar la memoria y los procesadores en la configuración a continuación, esto se puede controlar en caso de que desee limitar los recursos utilizados por sus contenedores docker.
Agregar
%UserProfile%\.wslconfig
archivo para ajustar la configuración de WSL2 [wsl2] kernel =<path> # An absolute Windows path to a custom Linux kernel. memory =<size> # How much memory to assign to the WSL2 VM. processors =<number> # How many processors to assign to t he WSL2 VM. swap =<size> # How much swap space to add to the WSL2 VM. 0 for no swap file. swapFile =<path> # An absolute Windows path to the swap vhd. localhostForwarding =<bool> # Boolean specifying if ports bound to wildcard or localhost in the WSL2 VM should be connectable from the host via localhost:port (default true ).
Docker de prueba: Introducción
De la documentación oficial de Docker, probemos la guía de inicio.
git clone https ://github.com/docker/getting- started .git
Ejecute los siguientes comandos para crear la imagen de la ventana acoplable,
Tenga en cuenta que estamos ejecutando esto en la terminal WSL de su distribución de Linux.
Correr
docker run -d -p 80 : 80 --name docker-tutorial docker101tutorial
Abra el navegador y escriba http://localhost/
Debería ver la guía de inicio.
Eso es todo amigos, hemos instalado y probado con éxito Docker en WSL2.
Probaré más funciones de Docker en WSL2 y actualizaré el artículo, pero los pasos anteriores deberían darle una ventaja para usar imágenes de Linux en Docker para Windows.
Publicado anteriormente en https://medium.com/codingfullstack/run-docker-linux-containers-natively-on-windows-subsystem-for-linux-4517584c86f5