
Para um funcionamento completo do projeto no Docker no WSL, é necessário instalar o WSL 2. No momento da redação desta nota, seu uso é possível apenas para participantes do programa de pré-avaliação do Windows (WSL 2 está disponível nas compilações 18932 e superiores). Também é importante mencionar que a versão do Windows 10 Pro é necessária para instalar e configurar o Docker Desktop.
Primeiros passos
Após ingressar no programa de pré-avaliação e instalar as atualizações, é necessário instalar a distribuição Linux (neste exemplo, Ubuntu 18.04) e o Docker Desktop com WSL 2 Tech Preview:
Em ambos os casos, siga todas as instruções de instalação e configuração.
Instalação da distribuição Ubuntu 18.04
Antes de iniciar o Ubuntu 18.04, é necessário habilitar o WSL do Windows e a Plataforma de Máquinas Virtuais do Windows executando dois comandos no PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux(requer reiniciar o computador)Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Depois, é necessário garantir que estaremos usando o WSL v2. Para isso, no terminal WSL ou PowerShell, execute os comandos a seguir sequencialmente:
wsl -l -v— verificamos qual versão está instalada atualmente. Se for 1, seguimos para o próximo passowsl --set-version ubuntu 18.04 2— para atualizar para a versão 2wsl -s ubuntu 18.04— definimos o Ubuntu 18.04 como distribuição padrão
Agora podemos iniciar o Ubuntu 18.04, realizar a configuração (definir nome de usuário e senha).
Instalação do Docker Desktop
Durante a instalação, siga as instruções. O computador solicitará reiniciar após a instalação e ao primeiro início para habilitar o Hyper-V (devido ao apoio do qual é necessária a versão Windows 10 Pro).
Importante! Se o Docker Desktop informar que está sendo bloqueado pelo firewall, vá para as configurações do antivírus e faça as seguintes alterações nas regras do firewall (neste exemplo, o antivírus utilizado é o Kaspersky Total Security):
- Acesse Configurações -> Proteção -> Firewall -> Configurar regras de pacote -> Local Service (TCP) -> Alterar
- Remova a porta 445 da lista de portas locais
- Salvar
Após iniciar o Docker Desktop, selecione a opção WSL 2 Tech Preview em seu menu de contexto.

Na janela que se abre, clique no botão Iniciar.

Agora, o docker e o docker-compose estão disponíveis dentro da distribuição WSL.
Importante! No Docker Desktop atualizado, agora há uma aba com WSL dentro da janela de configurações. Lá, a suporte para WSL é ativada.

Importante! Além de marcar a ativação do WSL, você também precisa ativar sua distribuição WSL na aba Recursos -> Integração WSL.

Iniciar
A surpresa foram os muitos problemas que surgiram ao tentar levantar os contêineres de projetos localizados no diretório do usuário do Windows.
Erros de diversos tipos, relacionados à execução de scripts bash (que geralmente são iniciados durante a construção dos contêineres para instalação das bibliotecas e distribuições necessárias) e outras coisas comuns no desenvolvimento em Linux, fizeram-me refletir sobre a possibilidade de hospedar projetos diretamente no diretório do usuário Ubuntu 18.04.
.
Da solução do problema anterior surge a seguinte questão: como trabalhar com os arquivos do projeto através do IDE instalado no Windows. Como 'melhor prática', encontrei apenas uma opção — trabalhar através do VSCode (embora eu seja fã do PhpStorm).
Após baixar e instalar o VSCode, é imprescindível instalar a extensão .
Depois de instalar a extensão mencionada, basta executar o comando code . no diretório do projeto com o VSCode aberto.
Neste exemplo, para acessar os contêineres através do navegador, o nginx é necessário. Instalá-lo através de sudo apt-get install nginx não foi tão simples. Primeiramente, foi necessário atualizar a distribuição WSL executando sudo apt update && sudo apt dist-upgrade, e só depois disso iniciar a instalação do nginx.
Importante! Todos os domínios locais não são registrados no arquivo /etc/hosts da distribuição Linux (ele nem existe lá), mas no arquivo hosts (geralmente localizado em C:WindowsSystem32driversetchosts) do Windows 10.
Fontes
Uma descrição mais detalhada de cada passo pode ser encontrada aqui:
Fonte: habr.com
