Instalando o Docker no WSL2

A instalação e configuração do Docker no WSL2 proporciona uma maneira eficiente de utilizar containers no ambiente Windows, permitindo uma integração fluida com o Linux. Assim, ao seguir os passos descritos, você terá um ambiente de desenvolvimento poderoso e otimizado para criar aplicações que podem ser facilmente transportadas para produção. Desse modo, com a leveza dos containers e a flexibilidade do Docker, seu fluxo de trabalho será mais ágil e confiável.

O uso de containers revolucionou a maneira como desenvolvemos, testamos e implantamos aplicações. Assim, diferente das máquinas virtuais tradicionais, os containers oferecem uma solução mais leve e eficiente, permitindo que múltiplos ambientes isolados coexistam em um único sistema operacional. Então, entre as várias opções disponíveis, o Docker se destaca como uma das ferramentas mais populares para a criação e gerenciamento de containers. Desse modo, no artigo Instalando o Docker no WSL2, vamos explorar o que é Docker, como ele funciona no Windows com WSL2, e como configurar corretamente para aproveitar ao máximo essa tecnologia.

Bom, além desse artigo, aqui no blog também temos diversos outros artigos sobre kubernetes, desenvolvimento, gestão, devops, etc. Veja alguns exemplos: Diferenças entre Paradigmas, Axiomas e HipótesesDesenvolver na empresa ou comprar prontoFuja da otimização prematura, entre outros.

O que é o Docker?

Container e Maquina Virtual são a mesma coisa?

Imagine desenvolver um sistema que roda de um jeito isolado, que não afete o seu sistema operacional. Pois bem, é possível ter maquinas virtuais que mesmo num Linux vocês pode rodar um Windows dentro, ou Mac. Então, essas maquinas virtuais podem ter HDs virtuais (representados por arquivos), memórias virtuais, drivers virtuais, etc. Assim, essa solução é muito interessante e produtos como Virtual Box, Wine, Hyper-V e VMware resolvem esse tipo de problema.

Entretanto, maquinas virtuais são pesadas. Não é raro você ter uma maquina com um HD virtual de 40 GB para trabalhar. Além disso, há muitas configurações e detalhes para trabalhar quando a abordagem é essa.

Então, o que é Container?

Agora, veja que há uma abordagem alternativa. Considere que seu computador pode ter vários perfis de acesso, isolados. Um usuário se loga em um perfil, roda suas aplicações, configura do seu jeito. Tudo isso sem afetar o outro usuário, mas compartilhando estruturas do mesmo sistema operacional. Bom, assim foi surgindo o conceito de container.

Há diferentes implementações de containers mas a que teve maior destaque foi a baseada no Docker. Com ele você pode ter um arquivo de poucos megabytes que representam um sistema operacional utilizável. Caso tenha interesse em saber mais detalhes sobre o Docker, veja os artigos a seguir:

Quais vantagens de usar isso?

Fica fácil entender que um container é mais leve do que uma maquina virtual. Agora, pense que é possível, com isso, garantir que um ambiente de desenvolvimento seja precisamente o mesmo ambiente de produção. Quando você desenvolve algo e implanta num container, a depender da abordagem, é possível garantir que exatamente esse container vá para produção, como algo isolado. Isso é quase poesia.

Docker no Linux ou Windows?

Entendido o valor do container, vamos agora entender como trabalhar com esse conceito. O Docker é uma solução muito prática e popular para lidar com isso. Se você estiver num ambiente Linux ou Mac, daqui para frente o artigo não terá grande serventia. Mas se estiver no Windows, instale o WSL2.

Seguindo, temos duas opções, onde somente uma é válida: podemos instalar o Docker diretamente no Linux do WSL2 ou instalar o Docker Desktop no Windows. O jeito certo é utilizando o Docker Desktop. Tenha em mente que é uma solução um pouco pesada e, dependendo da estação de trabalho, pode ficar lento.

Outro ponto importante é entender que não há nenhum custo para uso pessoal, entretanto há condições para uso empresarial. Consulte o contrato porque as condições que existem hoje em Outubro de 2024 podem ser diferentes de quando você estiver lendo o artigo, mas a principio empresas com mais de 250 funcionários ou com faturamento maior do que 10 milhões de dólares precisa pagar pelo licenciamento.

Empresas grandes podem, alternativamente, adotar o Podman junto ao Buildah, que são soluções que atendem ao mesmo propósito e sem custo.

Instalando o Docker Desktop no WSL2

Primeiramente nós recomendamos (mas não é obrigatório) que você instale o WSL2; Depois Baixe o Docker Desktop pelo link https://www.docker.com/products/docker-desktop/

Tela para download do Docker Desktop

Agora instale, mas considere a configuração que integra o WSL2 ao Docker ao invés do Hyper-V (como indicado na figura a seguir). Depois de instalado você deve reiniciar o Windows.

Tela de instalação do Docker Desktop, onde há o texto: Use WSL 2 instead of Hyper-V (recommended)
Tela de conclusão da instalação do Docker Desktop ne versão 4.34.3

Configurando o Docker Desktop corretamente

Depois de instalado é possível configurá-lo para rodar com o WSL2. Para fazer isso é bem simples: abra o painel de configuração do Docker Desktop (em uma engrenagem no topo à direita, na versão é 4.34.3). Procure pela Opção Resouces > WSL Integration. Naturalmente todas as distribuições de Linux que você tem instalado com o WSL2 aparecerão na lista. Selecione um e pronto. No meu caso, selecionei o meu Ubuntu.

Tela do Docker Desktop após instalado
Tela de configuração do Docker para integração com o WSL

Testando o Docker após instalado e configurado

Depois de instalado e configurado, deve-se fazer um teste para verificar se tudo está ok. Essencialmente você deve abrir o Windows Terminal e abrir o Linux do seu WSL2 indicado. Rode a seguinte linha de comando. O Resultado deve ser a tela a seguir.

docker run hello-world
Tela que exibe um teste de uso do Docker após instalado

Conclusão de Instalando o Docker no WSL2

A instalação e configuração do Docker no WSL2 proporciona uma maneira eficiente de utilizar containers no ambiente Windows, permitindo uma integração fluida com o Linux. Assim, ao seguir os passos descritos, você terá um ambiente de desenvolvimento poderoso e otimizado para criar aplicações que podem ser facilmente transportadas para produção. Desse modo, com a leveza dos containers e a flexibilidade do Docker, seu fluxo de trabalho será mais ágil e confiável.


Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.