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óteses, Desenvolver na empresa ou comprar pronto, Fuja da otimização prematura, entre outros.
Sumário
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:
- https://www.anselme.com.br/2022/11/23/docker-docker-swarm-e-kubernetes/
- https://www.anselme.com.br/2022/07/25/criando-containers-docker-com-o-padrao-de-docker-entrypoint-sh/
- https://www.anselme.com.br/2022/07/24/boas-praticas-na-otimizacao-de-imagens-docker/
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/
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.
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.
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
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.
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.