Desenvolvimento com Docker no subsistema Windows para Linux (WSL)

Desenvolvimento com Docker no subsistema Windows para Linux (WSL)

Para trabalhar totalmente com um projeto Docker no WSL, você deve instalar o WSL 2. No momento em que este artigo foi escrito, seu uso só era possível como parte da participação no programa Windows Insider (WSL 2 está disponível nas versões 18932 e superiores). Também vale a pena mencionar separadamente que a versão Windows 10 Pro é necessária para instalar e configurar o Docker Desktop.

Primeiros Passos

Depois de ingressar no programa Insider e instalar as atualizações, você precisa instalar uma distribuição Linux (Ubuntu 18.04 neste exemplo) e Docker Desktop com WSL 2 Tech Preview:

  1. Prévia da tecnologia Docker Desktop WSL 2
  2. Ubuntu 18.04 da Windows Store

Em ambos os pontos seguimos todas as instruções de instalação e configuração.

Instalando a distribuição Ubuntu 18.04

Antes de executar o Ubuntu 18.04, você precisa habilitar o Windows WSL e a Windows Virtual Machine Platform executando dois comandos no PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (requer reinicialização do computador)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Depois precisamos ter certeza de que usaremos o WSL v2. Para fazer isso, no terminal WSL ou PowerShell, execute os seguintes comandos:

  • wsl -l -v - veja qual versão está instalada atualmente. Se for 1, então avançamos na lista
  • wsl --set-version ubuntu 18.04 2 - para atualizar para a versão 2
  • wsl -s ubuntu 18.04 — instale o Ubuntu 18.04 como distribuição padrão

Agora você pode iniciar o Ubuntu 18.04 e configurá-lo (especifique seu nome de usuário e senha).

Instalando o Docker Desktop

Siga as instruções durante o processo de instalação. O computador exigirá uma reinicialização após a instalação e na primeira inicialização para habilitar o Hyper-V (que requer suporte do Windows 10 Pro).

Importante! Se o Docker Desktop relatar bloqueio pelo firewall, acesse as configurações do antivírus e faça as seguintes alterações nas regras do firewall (neste exemplo, o Kaspersky Total Security é usado como antivírus):

  • Vá para Configurações -> Segurança -> Firewall -> Configurar regras de pacotes -> Serviço local (TCP) -> Editar
  • Remova a porta 445 da lista de portas locais
  • Salvar

Após iniciar o Docker Desktop, selecione WSL 2 Tech Preview no menu de contexto.

Desenvolvimento com Docker no subsistema Windows para Linux (WSL)

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

Desenvolvimento com Docker no subsistema Windows para Linux (WSL)

Docker e docker-compose agora estão disponíveis na distribuição WSL.

Importante! O Docker Desktop atualizado agora possui uma guia com WSL dentro da janela de configurações. O suporte WSL está habilitado lá.

Desenvolvimento com Docker no subsistema Windows para Linux (WSL)

Importante! Além da caixa de seleção de ativação WSL, você também precisa ativar sua distribuição WSL na guia Recursos->Integração WSL.

Desenvolvimento com Docker no subsistema Windows para Linux (WSL)

Lançar

O que foi inesperado foram os muitos problemas que surgiram ao tentar levantar contêineres de projetos localizados no diretório de usuários do Windows.

Erros de vários tipos associados ao lançamento de scripts bash (que geralmente começam na construção de contêineres para instalação das bibliotecas e distribuições necessárias) e outras coisas comuns para desenvolvimento em Linux nos fizeram pensar em colocar projetos diretamente no diretório de usuários do Ubuntu 18.04.

.

Da solução do problema anterior segue: como trabalhar com arquivos de projeto através de um IDE instalado no Windows. Como “melhor prática”, encontrei apenas uma opção para mim - trabalhar por meio do VSCode (embora seja fã do PhpStorm).

Depois de baixar e instalar o VSCode, certifique-se de instalá-lo na extensão Pacote de extensão de desenvolvimento remoto.

Após instalar a extensão mencionada acima, basta executar o comando code . no diretório do projeto quando o VSCode está em execução.

Neste exemplo, o nginx é necessário para acessar contêineres por meio do navegador. Instale-o através sudo apt-get install nginx Acontece que não foi tão simples. Primeiro, precisávamos atualizar a distribuição WSL executando sudo apt update && sudo apt dist-upgrade, e só depois disso inicie a instalação do nginx.

Importante! Todos os domínios locais não são registrados no arquivo /etc/hosts da distribuição Linux (nem está lá), mas no arquivo hosts (geralmente localizado em C:WindowsSystem32driversetchosts) do Windows 10.

fontes

Uma descrição mais detalhada de cada etapa pode ser encontrada aqui:

Fonte: habr.com

Adicionar um comentário