O Docker se tornou o padrão da indústria para containerização, permitindo que desenvolvedores e administradores de sistemas empacotem aplicações com todas as suas dependências em containers portáteis e leves. Seja configurando um ambiente de desenvolvimento ou preparando um servidor de produção, instalar o Docker no Ubuntu é uma habilidade fundamental que todo profissional Linux deve dominar.
Este guia o conduz por todo o processo de instalação do Docker Engine, Docker CLI, containerd e do plugin Docker Compose no Ubuntu 22.04 (Jammy Jellyfish) e Ubuntu 24.04 (Noble Numbat). Também abordaremos as etapas pós-instalação, verificação, comandos essenciais e solução de problemas comuns.
Pré-requisitos
Antes de começar, certifique-se de que você tem:
- Um sistema executando Ubuntu 22.04 ou 24.04 (edição desktop ou servidor)
- Acesso ao terminal com privilégios sudo
- Uma conexão estável com a internet
- Familiaridade básica com a linha de comando Linux
Nota: Estas instruções se aplicam à arquitetura x86_64 / amd64. Se você estiver executando ARM64, os passos são os mesmos, mas o Docker irá automaticamente baixar as imagens específicas da arquitetura correta.
Passo 1: Desinstalar Versões Antigas ou Conflitantes
O Ubuntu pode vir com pacotes Docker mais antigos ou não oficiais como docker.io, docker-doc, docker-compose ou podman-docker. Estes devem ser removidos antes de instalar o Docker Engine oficial para evitar conflitos.
Execute o seguinte comando para remover quaisquer pacotes Docker pré-existentes:
sudo apt-get remove docker docker-engine docker.io containerd runc docker-compose docker-doc podman-docker
Se nenhum desses pacotes estiver instalado, o apt-get informará que não há nada para remover. Isso é perfeitamente normal.
Em seguida, limpe qualquer configuração restante:
sudo apt-get autoremove -y
Importante: O conteúdo de
/var/lib/docker/, incluindo imagens, containers, volumes e redes, não é automaticamente excluído quando você desinstala o Docker. Se você quiser começar completamente do zero, pode remover esse diretório manualmente comsudo rm -rf /var/lib/docker /var/lib/containerd, mas esteja ciente de que isso destrói todos os dados Docker existentes.
Passo 2: Configurar o Repositório APT do Docker
O Docker fornece um repositório APT oficial que sempre contém a última versão estável. Configurá-lo garante que você receba atualizações através do fluxo de trabalho padrão apt upgrade.
Primeiro, atualize o índice de pacotes e instale os pacotes pré-requisitos:
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
Crie o diretório para o keyring do repositório:
sudo install -m 0755 -d /etc/apt/keyrings
Baixe a chave GPG oficial do Docker:
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Adicione o repositório Docker às suas fontes APT:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Atualize o índice de pacotes novamente para que o APT reconheça o novo repositório:
sudo apt-get update
Você deve ver o repositório Docker listado na saída. Se você ver um erro GPG, verifique se o arquivo keyring foi baixado corretamente.
Passo 3: Instalar o Docker Engine, CLI e Plugins
Agora instale a stack completa do Docker, que inclui o daemon Docker Engine, o cliente CLI, containerd (o runtime de container) e os plugins Compose e Buildx:
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Aqui está o que cada pacote fornece:
| Pacote | Finalidade |
|---|---|
docker-ce | O daemon Docker Engine (Community Edition) |
docker-ce-cli | A interface de linha de comando docker |
containerd.io | O runtime de container que gerencia o ciclo de vida dos containers |
docker-buildx-plugin | Capacidades estendidas de build com BuildKit |
docker-compose-plugin | O subcomando docker compose (Compose v2) |
Passo 4: Verificar a Instalação
Confirme que o Docker foi instalado e o daemon está em execução:
sudo systemctl status docker
Você deve ver active (running) na saída. Se o serviço não estiver em execução, inicie-o:
sudo systemctl start docker
sudo systemctl enable docker
Agora execute o clássico container hello-world para verificar se tudo funciona de ponta a ponta:
sudo docker run hello-world
Este comando baixa uma pequena imagem de teste do Docker Hub e a executa em um container. Se você ver a mensagem “Hello from Docker!” seguida de uma explicação do que acabou de acontecer, sua instalação do Docker está funcionando corretamente.
Verifique as versões instaladas:
docker --version
docker compose version
Passo 5: Configuração Pós-Instalação
Executar Docker Sem sudo
Por padrão, o daemon Docker se vincula a um socket Unix de propriedade do root, o que significa que você precisa de sudo para cada comando docker. Para evitar isso, adicione seu usuário ao grupo docker:
sudo usermod -aG docker $USER
Aviso de Segurança: O grupo
dockerconcede privilégios equivalentes aoroot. Adicione apenas usuários confiáveis a este grupo. Para ambientes de produção, considere usar o modo rootless.
Para que a mudança de grupo tenha efeito, faça logout e login novamente, ou execute:
newgrp docker
Verifique se você pode executar o Docker sem sudo:
docker run hello-world
Configurar Docker para Iniciar no Boot
No Ubuntu 22.04 e 24.04 com systemd, o Docker geralmente é habilitado por padrão. Verifique e garanta que está configurado para iniciar no boot:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Configurar Logging Padrão
O driver de logging padrão do Docker (json-file) pode consumir espaço significativo em disco em servidores movimentados. Uma boa prática é configurar a rotação de logs criando ou editando o arquivo de configuração do daemon Docker:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
sudo systemctl restart docker
Isso limita o arquivo de log de cada container a 10 MB e mantém no máximo 3 arquivos de log rotacionados.
Referência Rápida de Comandos Docker
Aqui está uma referência rápida dos comandos Docker mais utilizados para você começar:
Ciclo de Vida do Container
# Executar um container em primeiro plano
docker run <image>
# Executar um container em segundo plano (modo detached)
docker run -d --name my-container <image>
# Executar um shell interativo dentro de um container
docker run -it ubuntu:24.04 /bin/bash
# Listar containers em execução
docker ps
# Listar todos os containers (incluindo parados)
docker ps -a
# Parar um container em execução
docker stop <container_name_or_id>
# Iniciar um container parado
docker start <container_name_or_id>
# Remover um container parado
docker rm <container_name_or_id>
# Remover um container em execução forçadamente
docker rm -f <container_name_or_id>
Gerenciamento de Imagens
# Baixar uma imagem do Docker Hub
docker pull nginx:latest
# Listar imagens baixadas
docker images
# Remover uma imagem
docker rmi <image_name_or_id>
# Remover todas as imagens não utilizadas
docker image prune -a
Inspeção e Depuração
# Visualizar logs do container
docker logs <container_name_or_id>
# Seguir logs do container em tempo real
docker logs -f <container_name_or_id>
# Executar um comando dentro de um container em execução
docker exec -it <container_name_or_id> /bin/bash
# Inspecionar detalhes do container (rede, montagens, configuração)
docker inspect <container_name_or_id>
# Visualizar estatísticas de uso de recursos em tempo real
docker stats
Limpeza
# Remover todos os containers parados
docker container prune
# Remover todas as imagens, containers, redes e volumes não utilizados
docker system prune -a --volumes
# Verificar uso de disco
docker system df
Solução de Problemas Comuns
Permissão Negada ao Executar Comandos docker
Se você ver permission denied while trying to connect to the Docker daemon socket, significa que seu usuário não está no grupo docker ou você não fez logout e login novamente após se adicionar ao grupo.
# Verificar se seu usuário está no grupo docker
groups $USER
# Se docker não estiver listado, adicione-o
sudo usermod -aG docker $USER
# Faça logout e login novamente, então tente novamente
Não Consegue Conectar ao Daemon Docker
Se você receber Cannot connect to the Docker daemon at unix:///var/run/docker.sock, o serviço Docker pode não estar em execução:
sudo systemctl start docker
sudo systemctl status docker
Verifique os logs do daemon Docker para erros:
sudo journalctl -u docker.service --no-pager -n 50
Problemas de Resolução DNS Dentro de Containers
Se os containers não conseguem resolver nomes de domínio, a configuração DNS padrão do Docker pode conflitar com seu sistema. Corrija especificando servidores DNS na configuração do daemon:
sudo tee /etc/docker/daemon.json <<'EOF'
{
"dns": ["8.8.8.8", "8.8.4.4"],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
sudo systemctl restart docker
Espaço em Disco Acabando
Imagens, containers e volumes Docker podem consumir espaço substancial em disco ao longo do tempo. Limpe regularmente os recursos não utilizados:
# Verificar o que está consumindo espaço
docker system df
# Limpar tudo que não está em uso atualmente
docker system prune -a --volumes
Conflitos de Pacotes Após Atualizar o Ubuntu
Se você atualizar do Ubuntu 22.04 para o 24.04, o repositório Docker deve continuar funcionando. No entanto, se você encontrar problemas, execute novamente os passos de configuração do repositório do Passo 2 para garantir que o codename correto seja usado na lista de fontes.
Próximos Passos
Agora que o Docker está instalado e em execução, você está pronto para começar a containerizar aplicações. Aqui estão alguns próximos passos recomendados:
- Aprenda Docker Compose para gerenciar aplicações multi-container. Veja nosso guia: Docker Compose: Um Guia Prático para Administradores de Sistemas
- Explore networking para entender como os containers se comunicam
- Configure monitoramento para acompanhar a saúde e o uso de recursos dos seus containers
- Instale atualizações de segurança regularmente no seu host Ubuntu
Conclusão
Você instalou com sucesso o Docker Engine, Docker CLI, containerd e Docker Compose no Ubuntu. Seguindo os passos pós-instalação, você configurou seu ambiente tanto para conveniência quanto para segurança. A referência rápida de comandos deve servir como referência prática enquanto você começa a trabalhar com containers.
O Docker é uma ferramenta poderosa que, quando combinada com Docker Compose e orquestração adequada, pode simplificar todo o seu fluxo de trabalho de implantação. Mantenha sua instalação Docker atualizada executando sudo apt-get update && sudo apt-get upgrade regularmente, e sempre consulte a documentação oficial do Docker para as melhores práticas mais recentes.