Introdução
Explorar as possibilidades da tecnologia de containers é uma jornada emocionante para desenvolvedores e profissionais de DevOps. O Docker e o Docker Compose são ferramentas importantes e suas instalações podem ser uma experiência única e empolgante, especialmente ao explorar novos caminhos para otimizar o ambiente de desenvolvimento.
Existem duas versões do Docker:
Docker CE (Community Edition)
: é uma versão gratuita e de código aberto do Docker, adequada para uso pessoal e em pequenas e médias empresas. O suporte é principalmente fornecido pela comunidade e pode ser mais limitado em comparação com o Docker EE.Docker EE (Enterprise Edition)
: é uma versão paga do Docker, projetada para uso em ambientes corporativos e em grande escala. Ela oferece suporte comercial, SLAs (Service Level Agreements) e recursos adicionais voltados para segurança, conformidade e integração.
Neste artigo, compartilho como tenho feito a instalação ou atualização do Docker CE (Community Edition) e do Docker Compose que são gratuitos. Além disso, vou detalhar como essa instalação pode ser realizada de forma eficiente no contexto do Windows, aproveitando o WSL2 (Windows Subsystem for Linux 2
) e dispensando a necessidade do aplicativo Docker Desktop.
Para Usuários do Windows
Se você usa o Windows, não se preocupe, poderá fazer a instalação deste artigo sem problemas, mas antes de seguirmos em frente, é interessante que você saiba que há duas formas de instalar o Docker no Windows:
Opção 1 - Aplicativo Docker Desktop
Não há muitas novidades aqui, você pode fazer essa instalação:
1- Acesse o site oficial:
2- Clique em Download for Windows
:
Next → Next → Finish
.Ao final, você pode obter um resultado semelhante:
Opção 2 (Sugerida) - WSL2
WSL2 significa (Windows Subsystem for Linux 2
) e possibilita ter um Linux nativo dentro do Windows, então a ideia aqui é instalar o Docker diretamente no Linux nativo do Windows. Entrarei em mais detalhes sobre algumas vantagens e desvantagens sobre isso, de qualquer forma essa opção exige que seu Windows tenha um WSL2 instalado e configurado, para isso talvez você ache interessante ler este outro artigo com um passo a passo de como atingir esse requisito:
Vantagens e Desvantagens
Até agora mencionei que há duas opções de instalação do Docker no Windows, mas como você pode decidir qual é a melhor opção para você? Para responder essa pergunta, vou detalhar um pouco mais algumas coisas que aprendi para ajudar você a tomar essa decisão.
Ao instalar o aplicativo Docker Desktop no Windows, no background ele usará o WSL2, mas de uma forma um pouco diferente. Quando a instalação for concluída, será criado duas distribuições adicionais do WSL2 em seu dispositivo:
docker-desktop
: responsável por executar odocker deamon
e sua infraestrutura ao redor para seu funcionamento.docker-desktop-data
: responsável por armazenar as imagens e configurações do docker.
NAME STATE VERSION
* Ubuntu-22.04 Running 2
docker-desktop Running 2
docker-desktop-data Running 2
Como você pode perceber, você precisará de mais recursos como memória
, cpu
, disco
, etc para executar todas as distribuições ao mesmo tempo. Então a grande desvantagem aqui é a performance e a lentidão.
Eu particularmente não gosto dessa abordagem, por dois motivos:
Para aprender docker, eu prefiro executar o comandos docker ao invés de depender de uma interface gráfica
Quando estou na minha
distribuição linux nativo com o WSL2
e executo um comando docker, na verdade não estou usando o docker diretamente nele, mas estou usando a outra distribuiçãodocker-desktop
, então eu acho que isso é uma etapa a mais desnecessária e que pode causar erros e lentidões.
Em contrapartida, uma grande vantagem é que o Docker estará compartilhado e disponível em qualquer ambiente ou ferramenta que você usar, por ele estar em uma distribuição dedicada à isso (distro docker-desktop
), todos os comandos docker funcionarão no windows terminal
, no powershell
, no cmd
, etc.
Embora eu não ache isso muito útil, pois na maioria das vezes uso apenas minha distribuição linux nativa do WSL2
, então raramente eu preciso do docker no powershell
ou cmd
por exemplo. Mas entendo se este não for o seu caso.
Uma grande desvantagem da instalação no WSL2 é que ela é individual, ou seja, se você tiver várias distribuições, deverá instalar o docker em cada uma delas, pois diferente da instalação do Docker Desktop, os comandos não ficam compartilhados entre as distribuições, felizmente vou compartilhar um único comando rápido e fácil que ajudará essa repetição ser bem menos tediosa.
Em resumo, você pode tomar sua decisão agora baseando-se em:
Aplicativo Docker Desktop: se você deseja ter uma interface gráfica ou executar comandos docker em qualquer lugar como
powershell
,cmd
ouwindows terminal
, essa opção pode ser a mais adequada para você.Docker no WSL2: se você está mais interessado em aprender os comandos docker, não precisa de uma interface gráfica, precisa do docker somente na sua distribuição linux e está mais interessado em performance, essa opção pode ser a mais adequada para você.
Instalação ou Atualização
1- Abra seu aplicativo de terminal preferido:
2- Insira o comando:
Embora o site oficial do Docker mencione um mínimo de 4GB de RAM necessários, na maioria das vezes 2 GB de RAM poderá ser o suficiente para muitas cargas de trabalhos, esse script funcionou bem para:
Mínimo de 512 MB RAM
Mínimo de 2vCPU (core)
Mínimo de 20 GB SSD
# Install latest Docker Version
curl -fsSL https://get.docker.com/ | sh && \
# Get latest Docker Compose version
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest \
| grep 'tag_name' \
| cut -d'"' -f4) && \
# Download latest Docker Compose
sudo curl \
-L "https://github.com/docker/compose/releases/download/$COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose && \
# Make Docker Compose executable
sudo chmod +x /usr/local/bin/docker-compose && \
# Add current user to "docker" group
sudo usermod -aG docker $USER && \
# Show Docker and Docker Compose versions
echo "============================================" && \
echo "Docker and Docker Compose Versions Installed" && \
docker --version && \
docker-compose --version && \
echo "============================================"
Agora todos os comandos Docker
já estarão disponíveis:
docker --help
Também estará disponível os comandos Docker Swarm
:
docker swarm --help
Também os comandos Docker Stack
:
docker stack --help
E por fim os comandos do Docker-Compose
:
docker-compose --help
Explicando o Comando
Se você estiver curioso em descobrir o que cada etapa do comando está fazendo, para um melhor entendimento, vou quebrar o comando acima em várias partes e ir explicando passo a passo:
# Install latest Docker Version
curl -fsSL https://get.docker.com/ | sh && \
Este comando utiliza o curl
para baixar o script de instalação oficial do Docker a partir da URL fornecida. O pipe |
envia o conteúdo baixado pelo curl
para o comando sh
, que executa o script.
Em outras palavras, estamos acessando o script oficial disponível em:
E executando com o bash
este script, que então irá verificar a arquitetura do seu dispositivo se é x86_64
ou arm64
por exemplo, também irá verificar a sua distribuição se é ubuntu
, debian
, centos
, etc. E fará a instalação ou atualização.
# Get latest Docker Compose version
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest \
| grep 'tag_name' \
| cut -d'"' -f4) && \
Obtém a versão mais recente do Docker Compose disponível no repositório do GitHub, analisando a resposta para obter a versão mais recente e armazenando na variável de ambiente COMPOSE_VERSION
.
# Download latest Docker Compose
sudo curl \
-L "https://github.com/docker/compose/releases/download/$COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose && \
Baixa a versão mais recente do Docker Compose e salva no diretório /usr/local/bin/
# Make Docker Compose executable
sudo chmod +x /usr/local/bin/docker-compose && \
Torna o arquivo docker-compose
baixado executável.
# Add current user to "docker" group
sudo usermod -aG docker $USER && \
Adiciona o usuário atual ao grupo docker
para poder executar comandos Docker sem usar sudo
.
# Show Docker and Docker Compose versions
echo "============================================" && \
echo "Docker and Docker Compose Versions Installed" && \
docker --version && \
docker-compose --version && \
echo "============================================"
Mostra as versões do Docker e Docker Compose instaladas ou atualizadas.
Bônus - Para quem usar WSL2
Você pode configurar o docker para iniciar automaticamente junto com seu WSL2:
1- Crie o arquivo em /etc/wsl.conf
2- Insira esse conteúdo com seu editor preferido:
[boot]
systemd=true
[boot] command = service docker start
Conclusão
Neste artigo, compartilhei como tenho feito a instalação ou atualização do Docker e Docker Compose, também demonstrei para usuários Windows duas opções de instalação, ainda demonstrei qual poderia ser a opção mais adequada e informei a que eu uso e os motivos para isso.