Como instalar Docker no VPS com Docker Composer
Como instalar Docker no VPS e subir seu primeiro app com Docker Compose
Docker mudou a forma como aplicações são distribuídas e operadas. Se você tem um VPS e quer padronizar seus deploys, este guia mostra como instalar, configurar e rodar seu primeiro projeto com Docker Compose.
Pré-requisitos
- VPS com Ubuntu 24.04 LTS (ou 22.04).
- Acesso SSH com usuário sudo.
- Portas 80 e 443 liberadas no firewall.
Passo 1: instalar Docker via repositório oficial
Nunca instale Docker do repositório padrão do Ubuntu (costuma estar desatualizado). Use o repositório oficial:
sudo apt update
sudo apt install ca-certificates curl -y
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
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
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Passo 2: verificar instalação
docker --version
docker compose version
sudo docker run hello-world
Se "Hello from Docker!" aparecer, a instalação está correta.
Passo 3: permitir Docker sem sudo
sudo usermod -aG docker $USER
Faça logout e login novamente para que a mudança tenha efeito. Depois, teste:
docker psPasso 4: primeiro projeto com Docker Compose
Crie uma pasta para o projeto:
mkdir -p ~/meu-projeto && cd ~/meu-projeto
Crie o arquivo docker-compose.yml:
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: meuapp
POSTGRES_USER: admin
POSTGRES_PASSWORD: senha_segura_aqui
volumes:
- pgdata:/var/lib/postgresql/data
restart: unless-stopped
volumes:
pgdata:
Crie o conteúdo de teste:
mkdir html
echo "<h1>Funcionando no Docker!</h1>" > html/index.html
Suba os serviços:
docker compose up -d
Acesse http://SEU_IP no navegador. Se a mensagem aparecer, está tudo rodando.
Boas práticas para Docker em VPS
Sempre use restart: unless-stopped
Garante que os containers reiniciem automaticamente após reboot do servidor.
Persista dados com volumes
Nunca armazene dados importantes dentro do container — use volumes Docker ou bind mounts.
Não rode containers como root
Use a diretiva user no Compose ou crie usuários dentro da imagem.
Versione o Compose no Git
O docker-compose.yml é sua infraestrutura como código. Versioná-lo no Git garante rastreabilidade e rollback.
Use variáveis de ambiente protegidas
Nunca coloque senhas diretamente no Compose. Use arquivo .env:
# .env
POSTGRES_PASSWORD=senha_segura_aqui
E no Compose:
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
Comandos essenciais
Comando | O que faz |
|---|---|
| Sobe serviços em background |
| Para e remove containers |
| Acompanha logs em tempo real |
| Lista containers ativos |
| Baixa imagens atualizadas |
| Reinicia serviços |
Perguntas frequentes (FAQ)
Docker Compose substitui Kubernetes?
Para VPS únicos e projetos de pequeno a médio porte, Docker Compose resolve perfeitamente. Kubernetes faz sentido para orquestração de múltiplos servidores e alta disponibilidade.
Docker consome muitos recursos?
O overhead do Docker é mínimo — muito menor que VMs. Um container Nginx consome cerca de 5 MB de RAM.
Como atualizar uma aplicação com Docker?
Atualize a imagem no Compose (docker compose pull), depois reinicie: docker compose up -d. O container antigo é substituído automaticamente.
Próximos passos
- Configure o servidor do zero em Como configurar VPS Ubuntu 24.04
- Faça deploy de aplicação real em Deploy Node.js em VPS
- Publique APIs containerizadas em Hospedar API com Docker
Actualizado em: 16/03/2026
Obrigado!
