Desenvolvemento con Docker no subsistema de Windows para Linux (WSL)
Para traballar completamente cun proxecto Docker en WSL, debes instalar WSL 2. No momento de escribir este documento, o seu uso só é posible como parte da participación no programa Windows Insider (WSL 2 está dispoñible nas compilacións 18932 e superiores). Tamén vale a pena mencionar por separado que é necesaria a versión Windows 10 Pro para instalar e configurar Docker Desktop.
Primeiros Pasos
Despois de unirse ao programa Insider e instalar actualizacións, cómpre instalar unha distribución Linux (Ubuntu 18.04 neste exemplo) e Docker Desktop con WSL 2 Tech Preview:
Agora podes iniciar Ubuntu 18.04 e configuralo (especifica o teu nome de usuario e contrasinal).
Instalación de Docker Desktop
Siga as instrucións durante o proceso de instalación. O ordenador requirirá un reinicio despois da instalación e no primeiro inicio para activar Hyper-V (por iso é necesario Windows 10 Pro).
Importante! Se Docker Desktop informa de bloqueo polo firewall, vaia á configuración do antivirus e faga os seguintes cambios nas regras do firewall (neste exemplo, Kaspersky Total Security úsase como antivirus):
Vaia a Configuración -> Seguridade -> Firewall -> Configurar regras de paquetes -> Servizo local (TCP) -> Editar
Elimina o porto 445 da lista de portos locais
Reter
Despois de iniciar Docker Desktop, seleccione WSL 2 Tech Preview no seu menú contextual.
Na xanela que se abre, fai clic no botón Inicio.
Docker e docker-compose agora están dispoñibles na distribución WSL.
Importante! O escritorio de Docker actualizado agora ten unha pestana con WSL dentro da xanela de configuración. A compatibilidade con WSL está habilitada alí.
Importante! Ademais da caixa de verificación de activación de WSL, tamén debes activar a túa distribución WSL na pestana Recursos->Integración WSL.
Lanzamento
O inesperado foron os moitos problemas que xurdiron ao intentar levantar os contedores do proxecto situados no directorio de usuarios de Windows.
Erros de diversa índole asociados ao lanzamento de scripts bash (que adoitan comezar cando se constrúen contedores para instalar as bibliotecas e distribucións necesarias) e outras cousas habituais para o desenvolvemento en Linux fixéronnos pensar en colocar os proxectos directamente no directorio de usuarios de Ubuntu 18.04.
.
Da solución ao problema anterior, segue o seguinte: como traballar con ficheiros de proxecto a través dun IDE instalado en Windows. Como "práctica recomendada", só atopei unha opción para min: traballar a través de VSCode (aínda que son fan de PhpStorm).
Despois de instalar a extensión mencionada anteriormente, simplemente execute o comando code . no directorio do proxecto cando se está a executar VSCode.
Neste exemplo, nginx é necesario para acceder aos contedores a través do navegador. Instalalo a través de sudo apt-get install nginx Resultou que non era tan sinxelo. En primeiro lugar, necesitabamos actualizar a distribución WSL executando sudo apt update && sudo apt dist-upgrade, e só despois comeza a instalación de nginx.
Importante! Todos os dominios locais están rexistrados non no ficheiro /etc/hosts da distribución Linux (nin sequera está alí), senón no ficheiro hosts (normalmente situado C:WindowsSystem32driversetchosts) de Windows 10.
Fontes
Aquí pódese atopar unha descrición máis detallada de cada paso: