Desarrollo con Docker en el Subsistema Windows para Linux (WSL)

Desarrollo con Docker en el Subsistema Windows para Linux (WSL)

Para trabajar completamente con un proyecto Docker en WSL, debe instalar WSL 2. Al momento de escribir este artículo, su uso solo es posible como parte de la participación en el programa Windows Insider (WSL 2 está disponible en las compilaciones 18932 y superiores). También vale la pena mencionar por separado que se requiere la versión Windows 10 Pro para instalar y configurar Docker Desktop.

Primeros pasos

Después de unirse al programa Insider e instalar las actualizaciones, debe instalar una distribución de Linux (Ubuntu 18.04 en este ejemplo) y Docker Desktop con WSL 2 Tech Preview:

  1. Vista previa técnica de Docker Desktop WSL 2
  2. Ubuntu 18.04 de la Tienda Windows

En ambos puntos seguimos todas las instrucciones de instalación y configuración.

Instalación de la distribución Ubuntu 18.04

Antes de ejecutar Ubuntu 18.04, debe habilitar Windows WSL y la plataforma de máquina virtual de Windows ejecutando dos comandos en PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (requiere reiniciar la computadora)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Luego debemos asegurarnos de que usaremos WSL v2. Para hacer esto, en la terminal WSL o PowerShell, ejecute los siguientes comandos:

  • wsl -l -v — mira qué versión está instalada actualmente. Si es 1, entonces avanzamos hacia abajo en la lista.
  • wsl --set-version ubuntu 18.04 2 - para actualizar a la versión 2
  • wsl -s ubuntu 18.04 — instale Ubuntu 18.04 como distribución predeterminada

Ahora puede iniciar Ubuntu 18.04 y configurarlo (especifique su nombre de usuario y contraseña).

Instalación de escritorio Docker

Siga las instrucciones durante el proceso de instalación. La computadora deberá reiniciarse después de la instalación y en el primer inicio para habilitar Hyper-V (que requiere Windows 10 Pro para ser compatible).

¡Importante! Si Docker Desktop informa un bloqueo por parte del firewall, vaya a la configuración del antivirus y realice los siguientes cambios en las reglas del firewall (en este ejemplo, se utiliza Kaspersky Total Security como antivirus):

  • Vaya a Configuración -> Seguridad -> Firewall -> Configurar reglas de paquetes -> Servicio local (TCP) -> Editar
  • Eliminar el puerto 445 de la lista de puertos locales
  • Conservar

Después de iniciar Docker Desktop, seleccione WSL 2 Tech Preview en su menú contextual.

Desarrollo con Docker en el Subsistema Windows para Linux (WSL)

En la ventana que se abre, haga clic en el botón Inicio.

Desarrollo con Docker en el Subsistema Windows para Linux (WSL)

Docker y docker-compose ahora están disponibles en la distribución WSL.

¡Importante! El Docker Desktop actualizado ahora tiene una pestaña con WSL dentro de la ventana de configuración. El soporte WSL está habilitado allí.

Desarrollo con Docker en el Subsistema Windows para Linux (WSL)

¡Importante! Además de la casilla de verificación de activación de WSL, también debe activar su distribución de WSL en la pestaña Recursos->Integración de WSL.

Desarrollo con Docker en el Subsistema Windows para Linux (WSL)

Lanzar

Lo inesperado fueron los muchos problemas que surgieron al intentar levantar los contenedores de proyectos ubicados en el directorio de usuarios de Windows.

Errores de diversos tipos asociados con el inicio de scripts bash (que generalmente comienzan al crear contenedores para instalar las bibliotecas y distribuciones necesarias) y otras cosas comunes para el desarrollo en Linux nos hicieron pensar en colocar proyectos directamente en el directorio de usuarios de Ubuntu 18.04.

.

De la solución al problema anterior sigue lo siguiente: cómo trabajar con archivos de proyecto a través de un IDE instalado en Windows. Como "mejor práctica", solo encontré una opción: trabajar con VSCode (aunque soy fanático de PhpStorm).

Después de descargar e instalar VSCode, asegúrese de instalarlo en la extensión Paquete de extensión de desarrollo remoto.

Después de instalar la extensión mencionada anteriormente, simplemente ejecute el comando code . en el directorio del proyecto cuando VSCode se está ejecutando.

En este ejemplo, se requiere nginx para acceder a los contenedores a través del navegador. Instálalo a través de sudo apt-get install nginx Resultó que no era tan sencillo. Primero, necesitábamos actualizar la distribución WSL ejecutando sudo apt update && sudo apt dist-upgrade, y solo después de eso inicie la instalación de nginx.

¡Importante! Todos los dominios locales no están registrados en el archivo /etc/hosts de la distribución de Linux (ni siquiera está allí), sino en el archivo de hosts (generalmente ubicado en C:WindowsSystem32driversetchosts) de Windows 10.

fuentes

Puede encontrar una descripción más detallada de cada paso aquí:

Fuente: habr.com

Añadir un comentario