Como instalar o Docker no Ubuntu
Nesta página
O Docker executa aplicações em contêineres: cada um traz tudo o que precisa, então roda do mesmo jeito no seu notebook e em um servidor. Sites, bancos de dados, bots e servidores de jogos podem ser iniciados com um único comando ou um único arquivo Compose.
Este guia instala o Docker Engine e o Docker Compose no Ubuntu 24.04 ou 22.04 a partir do repositório oficial do Docker e depois trata das configurações que importam em um servidor real: permissões, logs e firewall.
Antes de começar
- Um Ubuntu compatível: o Docker oferece suporte às versões de 64 bits do Ubuntu 26.04, 24.04 e 22.04 LTS. Confira a sua com
cat /etc/os-release. - Um servidor KVM, não um contêiner: o Docker precisa de recursos próprios do kernel. Ele roda em qualquer VPS KVM, mas muitas vezes não em planos baseados em contêiner (OpenVZ ou LXC).
- Root ou um usuário com sudo. Os comandos abaixo usam
sudo; se você estiver logado como root, pode deixá-lo de fora.
Em servidores, evite o pacote docker.io do repositório do próprio Ubuntu e a versão Snap: o repositório do Docker recebe as novas versões primeiro, e é ele que a documentação do próprio Docker usa.
O Docker precisa de uma máquina virtual de verdade: os planos VPS KVM da HytHost com Ubuntu e acesso root completo começam em €2.92/mês.
Ver planos VPSPasso 1: Remova os pacotes conflitantes
Se você já instalou o Docker antes por outra fonte, remova esses pacotes primeiro. Em um servidor novo, o apt simplesmente informa que nenhum está instalado:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
Imagens e volumes em /var/lib/docker/ não são apagados por isso.
Passo 2: Adicione o repositório do Docker
Estes comandos, tirados da documentação do Docker, adicionam a chave de assinatura do Docker e o repositório apt dele para a sua versão do Ubuntu:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
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
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
Passo 3: Instale o Docker e o Compose
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Isso instala o Docker Engine, a ferramenta de linha de comando, o builder Buildx e o plugin do Compose. Confira se funciona:
sudo docker run hello-world docker compose version
O primeiro comando baixa uma pequena imagem de teste e exibe uma mensagem de boas-vindas. No Ubuntu, o Docker inicia automaticamente com o sistema, então não há nada para habilitar.
O Compose é o comando docker compose, com espaço. O antigo docker-compose com hífen é a primeira versão, já descontinuada; guias que ainda usam esse formato também funcionam com o comando novo.
Passo 4: Permissões e rotação de logs
Rodando o docker sem sudo. Adicione seu usuário ao grupo docker e depois saia e entre de novo:
sudo usermod -aG docker $USER
Atenção: o próprio Docker avisa que esse grupo concede privilégios de nível root, ou seja, qualquer pessoa nele pode controlar o servidor inteiro. Adicione só usuários a quem você daria root.
Limite o tamanho dos logs. Por padrão, os logs dos contêineres crescem sem limite e podem encher o disco. Crie /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
Depois rode sudo systemctl restart docker. O limite vale para contêineres criados após a mudança, então recrie os que já existem.
Um primeiro arquivo Compose
O Compose descreve seus contêineres em um único arquivo. Crie uma pasta com um compose.yaml:
services:
web:
image: nginx:stable
ports:
- "127.0.0.1:8080:80"
restart: unless-stopped
Inicie com docker compose up -d, confira com docker compose ps e leia os logs com docker compose logs. restart: unless-stopped traz o contêiner de volta após uma falha ou reinicialização. A porta está vinculada a 127.0.0.1 de propósito, como explica a próxima seção.
Docker e ufw: a armadilha do firewall
Isso pega quase todo mundo. Quando você publica uma porta, por exemplo -p 8080:80, o Docker adiciona as próprias regras de firewall, que são aplicadas antes das do ufw. A porta fica aberta para a internet mesmo que o ufw diga que está fechada.
- Vincule as portas ao localhost quando só o próprio servidor precisa delas, como um banco de dados ou um app atrás de um proxy reverso:
127.0.0.1:8080:80. - Não publique portas de banco de dados de jeito nenhum; deixe os contêineres se comunicarem por uma rede Docker.
- Para filtrar por endereço de origem, adicione regras à chain iptables
DOCKER-USER, que o Docker verifica antes das próprias.
O mesmo vale para servidores de jogos rodando em Docker; veja como configurar uma VPS para servidores de jogos.
Docker em uma VPS da HytHost
Os planos VPS da HytHost rodam em KVM, então cada VPS tem o próprio kernel e o Docker funciona sem restrições. Escolha Ubuntu 24.04 ou 22.04 no pedido, conecte via SSH e siga os passos acima. Você tem acesso root completo, armazenamento SSD e proteção DDoS, e pode migrar para um plano maior depois, conforme seus contêineres crescem.
Perguntas frequentes
O Docker oferece suporte às versões de 64 bits do Ubuntu 26.04, 24.04 e 22.04 LTS. Outros sistemas baseados em Ubuntu, como o Linux Mint, não têm suporte oficial.
Não em um servidor de produção. O Docker diz que o script de conveniência é para ambientes de desenvolvimento e não é recomendado para produção; ele também pode pular para uma nova versão principal. Use o método do repositório.
docker-compose com hífen é a versão antiga, já descontinuada. Hoje o Compose é um plugin do Docker usado como docker compose, instalado com o pacote docker-compose-plugin.
As portas publicadas pelo Docker driblam o ufw. Vincule a porta a 127.0.0.1 se ela deve ficar local, ou filtre-a na chain DOCKER-USER.
Em uma VPS KVM, sim. Planos VPS baseados em contêiner, como OpenVZ, muitas vezes não conseguem rodar o Docker ou precisam de configurações especiais do provedor.
Rode seus contêineres em uma VPS
Os planos VPS KVM da HytHost rodam o Docker sem restrições, com acesso root completo e Ubuntu 24.04, a partir de €2.92/mês.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursEste guia foi útil?