Geral

Guia Definitivo: Como Instalar o Docker no Linux e Configurações de Pós-Instalação

O Docker revolucionou a maneira como desenvolvedores, engenheiros de DevOps e administradores de sistemas implantam, escalam e gerenciam aplicações. Ao contrário das máquinas virtuais (VMs) tradicionais, que emulam um hardware completo e rodam um sistema operacional inteiro, o Docker utiliza a tecnologia de conteinerização. Isso permite que você empacote uma aplicação e todas as suas dependências em um “container” isolado que roda sobre o kernel do sistema operacional hospedeiro.

Neste guia completo, você aprenderá como instalar o Docker Engine em sistemas baseados em Debian (como Ubuntu, Linux Mint e Kali Linux) e CentOS, além de realizar todas as configurações de pós-instalação necessárias para um ambiente de desenvolvimento ou produção profissional.

Pré-requisitos do Sistema

Antes de iniciar a instalação, é fundamental garantir que o seu servidor ou máquina local atenda aos requisitos mínimos. O Docker exige recursos de virtualização e uma arquitetura de 64 bits.

  • Sistema Operacional: Ubuntu 20.04+, Debian 10+, CentOS 7+, ou derivados.
  • Arquitetura: x86_64 ou ARM64.
  • Memória RAM: Mínimo de 2GB (recomendado 4GB para um fluxo de trabalho fluido).
  • Espaço em Disco: Pelo menos 20GB de espaço livre.
  • Acesso Root: Você precisará de privilégios de sudo para executar os comandos de instalação.
  • Conexão com a Internet: Necessária para baixar os pacotes dos repositórios oficiais.

Passo a Passo: Instalando o Docker no Ubuntu/Debian

A forma mais recomendada de instalar o Docker é através do repositório oficial da Docker. Isso garante que você esteja sempre utilizando a versão mais recente e estável, em vez das versões que podem estar desatualizadas nos repositórios padrão da distribuição.

1. Atualize o Sistema

O primeiro passo em qualquer instalação de software no Linux é garantir que a lista de pacotes e os softwares atuais estejam atualizados.

sudo apt-get update
sudo apt-get upgrade -y

2. Instale as Dependências Necessárias

Para que o sistema possa baixar e instalar o Docker via HTTPS e gerenciar chaves GPG, precisamos instalar alguns pacotes auxiliares:

sudo apt-get install ca-certificates curl gnupg lsb-release

3. Adicione a Chave GPG Oficial do Docker

A chave GPG é utilizada para verificar a autenticidade dos pacotes que você vai baixar do repositório do Docker.

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

(Nota: Se você estiver usando Debian, substitua ubuntu por debian na URL acima).

4. Configure o Repositório do Docker

Agora, vamos adicionar o repositório oficial à lista de fontes do seu sistema. O comando abaixo identifica automaticamente a versão do seu sistema operacional.

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5. Instale o Docker Engine e o Docker Compose

Após adicionar o repositório, atualize novamente a lista de pacotes e instale o Docker Engine, a CLI do Docker e o plugin do Docker Compose (que é a versão atual e recomendada).

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

6. Verifique a Instalação

Para garantir que tudo foi instalado corretamente, execute o comando de verificação de versão:

docker --version

E, em seguida, execute o container de teste padrão:

sudo docker run hello-world

Se a instalação foi bem-sucedida, você verá uma mensagem dizendo “Hello from Docker!”.


Configurações de Pós-Instalação

Após a instalação básica, existem passos cruciais para tornar o uso do Docker mais eficiente e seguro.

1. Executar o Docker sem Sudo (Usuário não-root)

Por padrão, o comando docker exige privilégios de sudo. Para evitar digitar sudo em todos os comandos, você deve adicionar seu usuário ao grupo docker.

Cuidado: Adicionar um usuário ao grupo docker concede permissões equivalentes ao root. Use isso em ambientes de desenvolvimento confiáveis.

# Cria o grupo docker (geralmente já é criado na instalação)
sudo groupadd docker

Adiciona seu usuário ao grupo


sudo usermod -aG docker $USER

Importante: Para que essa alteração tenha efeito, você precisa deslogar e logar novamente no sistema ou rodar o comando:

newgrp docker 

2. Configurar o Docker para iniciar no Boot

Certifique-se de que o serviço do Docker está configurado para iniciar automaticamente sempre que o servidor for ligado.

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

3. Instalar o Docker Compose (Versão Independente)

Embora o plugin docker-compose-plugin já tenha sido instalado no passo anterior, alguns usuários ainda preferem a versão independente do Docker Compose. Se você precisar da versão clássica, use:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Verifique a instalação com:

docker-compose --version 

Comandos Essenciais do Docker para Iniciantes

Para dominar o Docker, você precisa conhecer os comandos básicos de gerenciamento de containers e imagens.

Gerenciamento de Imagens

  • docker pull : Baixa uma imagem do Docker Hub (ex: docker pull nginx).
  • docker images: Lista todas as imagens baixadas localmente.
  • docker rmi : Remove uma imagem específica.

Gerenciamento de Containers

  • docker ps: Lista os containers em execução.
  • docker ps -a: Lista todos os containers (incluindo os parados).
  • docker run : Cria e inicia um container a partir de uma imagem.
  • docker run -d -p 8080:80 --name meu-site nginx: Roda o Nginx em segundo plano (detached), mapeando a porta 8080 do host para a 80 do container e dando o nome “meu-site”.
  • docker stop : Para um container em execução.
  • docker rm : Remove um container parado.
  • docker exec -it bash: Abre um terminal interativo dentro de um container que já está rodando.

Limpeza de Sistema

  • docker system prune: Remove todos os dados não utilizados (containers parados, redes não utilizadas e imagens sem nome).

Dicas de Especialista para Otimização

  1. Utilize Dockerfiles: Evite usar comandos docker run gigantescos para configurar seus ambientes. Em vez disso, crie um Dockerfile para construir suas próprias imagens personalizadas.
  2. Volumes são fundamentais: Lembre-se que os dados dentro de um container são efêmeros (são apagados ao deletar o container). Sempre use -v ou a instrução volumes no Compose para persistir bancos de dados e arquivos de configuração.
  3. Docker Hub: Explore o Docker Hub para encontrar imagens oficiais e verificadas. Isso economiza horas de configuração manual de softwares como MySQL, PostgreSQL, Redis e Nginx.
  4. Recursos de Memória: Em servidores com poucos recursos, limite o uso de memória dos containers para evitar que um processo “zumbi” derrube todo o sistema operacional. Use --memory="512m".

FAQ – Perguntas Frequentes

O Docker é seguro para produção?

Sim, o Docker é amplamente utilizado em produção por grandes empresas. No entanto, é importante seguir boas práticas de segurança, como não rodar processos como root dentro do container e manter as imagens atualizadas.

Qual a diferença entre Docker Engine e Docker Desktop?

O Docker Engine é a versão de linha de comando para servidores e sistemas Linux. O Docker Desktop é uma aplicação gráfica para Windows e macOS que inclui uma interface visual, Kubernetes integrado e ferramentas de gerenciamento de recursos, mas consome mais memória.

Posso rodar múltiplos bancos de dados no mesmo servidor com Docker?

Sim, essa é uma das maiores vantagens do Docker. Você pode rodar instâncias isoladas de MySQL, PostgreSQL e MongoDB em portas diferentes simultaneamente sem conflitos de dependências.

O Docker substitui o Kubernetes?

Não exatamente. O Docker é a tecnologia de containerização (como criar o container). O Kubernetes é um orquestrador (como gerenciar milhares de containers em um cluster de servidores). Para pequenos projetos, o Docker Compose é suficiente; para infraestruturas gigantescas, usa-se o Kubernetes.


Conclusão

Instalar o Docker é o primeiro passo para modernizar sua infraestrutura de desenvolvimento e operação. Ao seguir este guia, você garantiu uma instalação limpa, utilizando os repositórios oficiais, e configurou seu ambiente para rodar containers de forma eficiente sem a necessidade constante de privilégios de superusuário.

Agora que o Docker está rodando, o próximo passo é aprender a criar seus próprios Dockerfiles e a utilizar o Docker Compose para gerenciar arquiteturas de múltiplos containers de forma declarativa.

Fontes de pesquisa:

  • Documentação Oficial do Docker (docs.docker.com)
  • Repositório oficial do Docker Engine no GitHub
Compartilhar: X f in wa