Desarrollo con Docker en Windows Subsystem for Linux (WSL)

Desarrollo con Docker en Windows Subsystem for Linux (WSL)

Para trabajar completamente con un proyecto en Docker en WSL, es necesario instalar WSL 2. En el momento de redactar esta nota, su uso es posible solo en el marco de la participación en el programa de evaluación anticipada de Windows (WSL 2 está disponible en las compilaciones 18932 y posteriores). También es importante mencionar que se requiere una versión de Windows 10 Pro para instalar y configurar Docker Desktop.

Primeros pasos

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

  1. Docker Desktop WSL 2 Tech Preview
  2. Ubuntu 18.04 de Windows Store

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

Instalación de la distribución Ubuntu 18.04

Antes de iniciar Ubuntu 18.04, se debe habilitar WSL de Windows 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, es necesario asegurarnos de que estaremos usando WSL v2. Para ello, en el terminal de WSL o PowerShell ejecutamos secuencialmente los siguientes comandos:

  • wsl -l -v — verificamos qué versión está instalada en este momento. Si es 1, seguimos adelante con la lista.
  • wsl --set-version ubuntu 18.04 2 — para actualizar a la versión 2.
  • wsl -s ubuntu 18.04 — configuramos Ubuntu 18.04 como la distribución predeterminada.

Ahora se puede iniciar Ubuntu 18.04 y proceder con la configuración (ingresar el nombre de usuario y la contraseña).

Instalación de Docker Desktop

Durante el proceso de instalación, seguimos las indicaciones. La computadora requerirá reinicio después de la instalación y al primer inicio para habilitar Hyper-V (debido al soporte, se requiere la versión de Windows 10 Pro).

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

  • Accedemos a Configuración -> Protección -> Cortafuegos -> Configurar reglas de paquetes -> Servicio local (TCP) -> Cambiar
  • De la lista de puertos locales, eliminamos el puerto 445
  • Guardar

Después de iniciar Docker Desktop, en su menú contextual seleccionamos la opción WSL 2 Tech Preview.

Desarrollo con Docker en Windows Subsystem for Linux (WSL)

En la ventana abierta, hacemos clic en el botón Iniciar.

Desarrollo con Docker en Windows Subsystem for Linux (WSL)

Ahora Docker y Docker Compose están disponibles dentro de la distribución WSL.

¡Importante! En la versión actualizada de Docker Desktop, ahora hay una pestaña con WSL dentro de la ventana de configuración. Allí se habilita el soporte para WSL.

Desarrollo con Docker en Windows Subsystem for Linux (WSL)

¡Importante! Además de activar WSL, también es necesario habilitar su distribución WSL en la pestaña Recursos -> Integración WSL.

Desarrollo con Docker en Windows Subsystem for Linux (WSL)

Lanzamiento

Fue sorprendente los muchos problemas que surgieron al intentar levantar los contenedores de proyectos ubicados en el directorio del usuario de Windows.

Errores de diversa índole relacionados con la ejecución de scripts de bash (que normalmente se inician al construir contenedores para instalar bibliotecas y distribuciones necesarias) y otras cosas comunes en el desarrollo en Linux, me hicieron reflexionar sobre la posibilidad de alojar proyectos directamente en el directorio del usuario de Ubuntu 18.04.

.

La solución al problema anterior da pie a la siguiente: cómo trabajar con los archivos del proyecto a través de un IDE instalado en Windows. Como 'mejor práctica', solo encontré una opción: trabajar a través de VSCode (aunque soy fan de PhpStorm).

Después de descargar e instalar VSCode, asegúrate de instalar la extensión Remote Development extension pack.

Después de instalar la extensión mencionada, simplemente ejecuta el comando code . en el directorio del proyecto con VSCode en funcionamiento.

En este ejemplo, se necesita nginx para acceder a los contenedores a través del navegador. Instalarlo a través de sudo apt-get install nginx no resultó tan sencillo. Primero, se necesitó actualizar la distribución de WSL ejecutando sudo apt update && sudo apt dist-upgrade, y solo después de esto proceder a la instalación de nginx.

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

Fuentes

Una descripción más detallada de cada paso se puede encontrar aquí:

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster