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
sudopara 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
- Utilize Dockerfiles: Evite usar comandos
docker rungigantescos para configurar seus ambientes. Em vez disso, crie umDockerfilepara construir suas próprias imagens personalizadas. - 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
-vou a instruçãovolumesno Compose para persistir bancos de dados e arquivos de configuração. - 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.
- 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




