Desenvolvimento com Docker no Windows Subsystem for Linux (WSL)

Desenvolvimento com Docker no Windows Subsystem for Linux (WSL)

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:

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

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:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (requer reiniciar o computador)
  2. 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 passo
  • wsl --set-version ubuntu 18.04 2 — para atualizar para a versão 2
  • wsl -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.

Desenvolvimento com Docker no Windows Subsystem for Linux (WSL)

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

Desenvolvimento com Docker no Windows Subsystem for Linux (WSL)

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.

Desenvolvimento com Docker no Windows Subsystem for Linux (WSL)

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.

Desenvolvimento com Docker no Windows Subsystem for Linux (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 Remote Development extension pack.

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

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster