
Para trabajar completamente con el proyecto en Docker en WSL, debe instalar WSL 2. Al momento de escribir, solo puede usarlo como parte del Programa Windows Insider (WSL 2 está disponible en las versiones 18932 y posteriores). También vale la pena mencionar por separado que se requiere una versión de Windows 10 Pro para instalar y configurar Docker Desktop.
Importante! WSL 2 ya no ha necesitado Docker Desktop para Windows 10. La forma de hacerlo sin ella se describe en la sección Docker Pro en Ubuntu .
Primeros pasos
Después de ingresar al programa de evaluación preliminar e instalar las actualizaciones, debe instalar la distribución de Linux (en este ejemplo, se utiliza Ubuntu 18.04) y Docker Desktop con WSL 2 Tech Preview:
- Vista previa técnica de Docker Desktop WSL 2
- Ubuntu 18.04 de la Tienda Windows
En ambos párrafos, seguimos todas las instrucciones de instalación y configuración.
Instalar la distribución Ubuntu 18.04
Antes de iniciar Ubuntu 18.04, debe habilitar Windows WSL y Windows Virtual Machine Platform ejecutando dos comandos en PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
(requiere reiniciar la computadora)Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Después de que necesite asegurarse de que usaremos WSL v2. Para hacer esto, en el terminal WSL o PowerShell, ejecute los siguientes comandos secuencialmente:
wsl -l -v
: ver qué versión está instalada actualmente. Si es 1, entonces muévase más abajowsl --set-version ubuntu 18.04 2
- para actualizar a la versión 2wsl -s ubuntu 18.04
- instala Ubuntu 18.04 como la distribución predeterminada
Ahora puede iniciar Ubuntu 18.04, configurar (especificar un nombre de usuario y contraseña).
Instalar Docker Desktop
Importante! WSL 2 ya no ha necesitado Docker Desktop para Windows 10. La forma de hacerlo sin ella se describe en la sección Docker Pro en Ubuntu .
Durante la instalación, siga las instrucciones. La computadora requerirá un reinicio después de la instalación y al principio comenzar a encender Hyper-V (debido a qué soporte, se requiere una versión de Windows 10 Pro).
Importante! Si Docker Desktop informa que está bloqueado por el firewall, vaya a la configuración del antivirus y realice los siguientes cambios en las reglas del firewall (en este ejemplo, Kaspersky Total Security se utiliza como antivirus):
- Vaya a Configuración -> Protección -> Firewall -> Configurar reglas de paquetes -> Servicio local (TCP) -> Cambiar
- Elimine el puerto 445 de la lista de puertos locales
- Guardar
Después de iniciar Docker Desktop, en su menú contextual, seleccione el elemento WSL 2 Tech Preview.

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

Ahora docker y docker-compose están disponibles dentro de la distribución WSL.
Importante! El Docker Desktop actualizado ahora tiene una pestaña con WSL dentro de la ventana de configuración. Incluye soporte para WSL.

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

Lanzamiento
Lo inesperado fueron los muchos problemas que ocurrieron al intentar elevar los contenedores de proyectos ubicados en el directorio de usuarios de Windows.
Los errores de varios tipos relacionados con la ejecución de scripts de bash (que generalmente comienzan al construir contenedores para instalar las bibliotecas y distribuciones necesarias) y otras cosas comunes para el desarrollo de Linux nos hicieron pensar en colocar proyectos directamente en el directorio de usuarios de Ubuntu 18.04.
.
De la solución al problema anterior, se sigue lo siguiente: cómo trabajar con archivos de proyecto a través del IDE instalado en Windows. Como "mejor práctica", encontré solo una opción para mí: trabajar a través de VSCode (aunque soy fanático de PhpStorm).
Después de descargar e instalar VSCode, lo instalamos en el paquete de extensión de Desarrollo remoto .
Después de instalar la extensión anterior, simplemente ejecute el comando de code .
en el directorio del proyecto con VSCode ejecutándose.
En este ejemplo, se requiere nginx para acceder a los contenedores a través de un navegador. Instalarlo a través de sudo apt-get install nginx
no fue tan simple. Para comenzar, era necesario actualizar la distribución de WSL haciendo sudo apt update && sudo apt dist-upgrade
, y solo entonces iniciar la instalación de nginx.
Importante! Todos los dominios locales están registrados no en el archivo / etc / hosts de la distribución de Linux (ni siquiera está allí), sino en el archivo de hosts (generalmente ubicado C: \ Windows \ System32 \ drivers \ etc \ hosts) en Windows 10.
Acerca de Docker en Ubuntu
Como lo indicaron los usuarios expertos en los comentarios a la nota, la ventana acoplable dentro de la distribución WSL 2 es absolutamente funcional. Esto le permite no instalar Docker Desktop en Windows 10 y resuelve el problema de tener una versión de Windows 10 Pro (la necesidad de Pro surge precisamente en relación con el uso de Docker Desktop). Se instala de acuerdo con las instrucciones del sitio de inicio:
Si la ventana acoplable comienza a maldecir al demonio cuando ejecuta el comando, verifique el estado del servicio; en mi caso, como nginx, no se inicia automáticamente. Ejecútelo con el sudo service docker start
.
Si en el momento del ensamblaje se produce el error "Error al construir el servicio: cgroups: no se puede encontrar el destino de montaje de cgroup: desconocido", intente la siguiente solución (no la mía, encontré el enlace en las fuentes): sudo mkdir /sys/fs/cgroup/systemd
; sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
.
Trabaja con el proyecto a través de PhpStorm
Para proporcionar la capacidad de trabajar con un proyecto en WSL a través de PhpStorm, debe hacer lo siguiente:
- Ejecute el símbolo del sistema de Windows 10 como administrador;
- En el símbolo del sistema de Windows 10, ejecute el comando
mklink /DC:\project_directory \\wsl$\Ubuntu\home\user\project_directory
, que creará un enlace simbólico a la carpeta del proyecto.
Después de eso, en el IDE, puede abrir el proyecto a lo largo de la ruta C: \ project_directory
PD Dmitry Simagin , gracias por la decisión.
Fuentes
Puede encontrar una descripción más detallada de cada paso aquí: