Como Instalar ou Atualizar o Docker e o Docker Compose

Como Instalar ou Atualizar o Docker e o Docker Compose



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 uma melhor compreensão do processo de instalação do Docker no Windows, é importante destacar algumas considerações específicas para esse sistema operacional. No entanto, se você já estiver familiarizado com o ambiente Linux, pode pular diretamente para as instruções de instalação. Por outro lado, se você estiver utilizando o Windows, recomendo que leia esta seção inicial para obter um contexto mais abrangente antes de prosseguir com o tutorial de instalação.

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:

Para concluir a instalação, basta seguir as etapas padrão, semelhantes a qualquer outro aplicativo no Windows, clicando em 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 o docker 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ção docker-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 ou windows 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ê.


Eu prefiro a instalação do Docker diretamente no meu WSL2 ao invés do aplicativo Docker Desktop, como mencionei, essa instalação é em uma distribuição nativa do linux, então se você optou por essa abordagem também, continue para o próximo passo abaixo.

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 "============================================"

Você deve fechar e abrir novamente seu terminal para que as permissões sejam atualizadas e os comandos docker sem sudo funcionarem.

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

Pronto! Isso é o suficiente para a instalação ou atualização das versões mais atuais do Docker e Docker Compose!

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.

Espero que essas informações tenham sido úteis para você!