Veja como obter a melhor experiência do Docker no Windows.

O Windows Subsystem para Linux 2 é uma ferramenta fenomenal no Windows 10 e 11 e se integra perfeitamente ao Docker. Como desenvolvedores, é essencial entender o que esses softwares oferecem e como você pode aproveitar ao máximo sua configuração do Docker-WSL 2.

O que é Docker?

O Docker é uma plataforma de código aberto que permite aos desenvolvedores criar, implantar e executar com eficiência seus aplicativos em um contêiner. Todas as dependências são agrupadas para que seu projeto possa ser implantado facilmente em qualquer ambiente.

O Docker é muito popular entre muitas plataformas de conteinerização porque é confiável, funcional e altamente escalável. Ele é executado no mecanismo Docker, uma ferramenta essencial de DevOps que fornece um ambiente limpo e leve para teste e implantação. O Docker é semelhante a uma máquina virtual, mas virtualiza o sistema operacional em vez do hardware subjacente.

Para desenvolvedores de software, o Docker simplifica o fluxo de trabalho criando contêineres individuais para diferentes microsserviços que incluem as dependências, bibliotecas e configurações necessárias. Cada contêiner de microsserviço é isolado e escalável individualmente.

Como usar o Docker no WSL 2

O Docker é compatível com todos os principais sistemas operacionais, como Windows, macOS e Linux. Se você estiver no Windows 10 ou 11, poderá usar o Docker via Docker Desktop e integrá-lo com o Windows Subsystem for Linux 2 para melhor desempenho. Você pode baixar o Docker Desktop para Windows no site oficial do Docker.

O Windows Subsystem for Linux (WSL) é um recurso valioso que permite aos usuários do Windows executar distribuições Linux como Ubuntu e Kali sem configurar uma máquina virtual ou inicialização dupla.

Isso também significa que Os usuários do Windows podem usar diretamente as ferramentas de linha de comando do Linux, aplicativos e utilitários sem etapas extras de instalação. A versão mais recente do WSL, WSL 2, oferece maior estabilidade e um kernel Linux dedicado.

Como os contêineres do Docker são robustos, você pode até mesmo configurá-los para hospedar seu servidor; Os contêineres docker nginx são comumente usados ​​como servidores web. Além disso, você pode usar o Docker de várias outras maneiras:

  • Execute distribuições Linux facilmente
  • Configure um servidor da Web para fins de aprendizado ou teste
  • Aplicativos de implantação portáteis
  • Agrupe o aplicativo em um único arquivo de imagem
  • Pipeline CI/CD simplificado

Você deve se familiarizar com as práticas recomendadas para utilizar o Docker com Windows Subsystem for Linux 2, assim como faria com qualquer outra plataforma ou ferramenta. Como desenvolvedor, posso dizer por experiência própria que você se tornará muito mais produtivo e eficiente depois de integrar as dicas a seguir em seu fluxo de trabalho.

1. Integre o VS Code com o WSL 2

O Visual Studio Code é um IDE popular que é adorado por seus incríveis recursos, comunidade e extensões. Como desenvolvedor, a capacidade de usar o Visual Studio Code para desenvolvimento de aplicativos em uma plataforma Windows enquanto também executar esses aplicativos em um kernel Linux é incrivelmente vantajoso e quase inacreditável recurso.

Ao integrar o VS Code ao Windows Subsystem for Linux, você pode aproveitar seu kernel Linux especializado para aprimorar a compatibilidade entre plataformas. Você pode simplificar ainda mais seu fluxo de trabalho utilizando o terminal integrado no VS Code com WSL 2.

Para configurar VS Code com WSL 2 no Windows, você pode configurar o WSL extensão do VS Code Marketplace e faça as coisas acontecerem.

2. Utilize o sistema de arquivos WSL 2

Para executar adequadamente seus contêineres do Docker, é vital que você confie no sistema de arquivos de sua distribuição WSL 2 e não dependa muito do sistema de arquivos nativo do Windows. Ao longo da minha experiência de trabalho com contêineres do Docker no WSL 2, descobri que é melhor armazenar seus arquivos de projeto no WSL.

3. Usar scripts nativos do Linux

Muitos projetos conteinerizados nos quais você trabalhará provavelmente virão com scripts para automação no Linux. Normalmente, esses scripts são desenvolvidos primeiro para Linux e os desenvolvedores do Windows não são uma prioridade.

Com o WSL 2, toda a sua equipe pode usar os mesmos scripts de automação do Linux e você não precisa se preocupar em manter scripts de automação compatíveis com o Windows para sua equipe.

4. Configure o BuildKit para melhorar a segurança e o desempenho

BuildKit é um kit de ferramentas de código aberto que melhora o processo de construção tradicional do Docker em termos de desempenho e segurança; ele é integrado diretamente ao Docker, então você não precisa instalá-lo separadamente.

Quando você habilitar o BuildKit por padrão, você garante que seus contêineres sejam criados com o kit de ferramentas BuildKit, oferecendo melhor segurança, simultaneidade, flexibilidade e armazenamento em cache.

Para ativar o BuildKit por padrão, você deve fazer as seguintes alterações no arquivo de configuração ~/.profile:

exportar DOCKER_BUILDKIT=1.

5. Configurar limites de recursos

Ao integrar o back-end do WSL 2 ao Docker Desktop, você concede ao Docker acesso a todos os seus recursos de CPU. Isso ajuda a melhorar o desempenho de contêineres com muitos recursos.

No entanto, em alguns casos, um contêiner pode alocar muito excesso de memória, causando falhas nos processos críticos do sistema operacional. É mais provável que você experimente isso ao usar contêineres de banco de dados ou um microsserviço de cache.

Felizmente, você pode configurar contêineres do Docker para limitar a memória do sistema e o uso da CPU. Você deve sempre ter cuidado ao configurar a memória do sistema, mesmo um pequeno erro pode ter consequências significativas. Você pode consultar o documentação oficial do Docker para obter um guia mais detalhado sobre como limitar os recursos de memória e CPU consumidos por um contêiner do Docker.

6. Recuperar memória em cache

Se você estiver executando um contêiner do Docker no WSL 2, sua memória deverá ser liberada assim que o contêiner for encerrado. Infelizmente, o kernel do sistema operacional tende a manter os dados no cache; isso significa que a memória efetiva recuperada pelo WSL 2 não será suficiente.

Você pode recuperar toda a memória que está sendo utilizada desnecessariamente como cache executando o seguinte comando via root no WSL 2:

eco 1 > /proc/sys/vm/drop_caches

Fique mais esperto com o WSL 2

O WSL 2 é o melhor recurso para desenvolvedores baseados em Windows, mudando completamente a forma como os desenvolvedores usam o Docker. Os desenvolvedores devem entender as práticas recomendadas para usar o Docker com WSL para melhorar o desempenho, a segurança e a flexibilidade do fluxo de trabalho.