Como orquestrar múltiplos containers (app + banco de dados) com Docker Compose no VPS
Olá, viajante da tecnologia! Seja bem-vindo ao seu novo passo rumo à autonomia no mundo do desenvolvimento web. Aqui na GeHost, acreditamos que todo mundo pode aprender a cuidar do seu próprio servidor — mesmo que você ainda esteja começando. Hoje, vamos juntos aprender como usar o Docker Compose para rodar sua aplicação e seu banco de dados juntos, de forma organizada, em seu VPS. É como montar um pequeno mundo digital dentro do seu servidor, tudo controlado por um único arquivo. Vamos lá?
Antes de começar: o que você precisa saber
Antes de mergulharmos no código, é bom entender o que estamos fazendo:
- Docker é uma ferramenta que permite empacotar aplicações e seus dependências em contêineres — como caixas fechadas que funcionam igual em qualquer lugar.
- Docker Compose é uma forma de gerenciar múltiplos contêineres com um único arquivo, chamado
docker-compose.yml. É como escrever um roteiro para o seu servidor saber como montar tudo. - Seu VPS já está configurado com Docker instalado? Sim! Na GeHost, os planos de hospedagem com acesso root (como o Plus) permitem essa configuração. Se você não tiver acesso root, consulte seu plano no painel.
Sensei diz: Não se preocupe se ainda não entende tudo. O importante é começar. Cada grande desenvolvedor já foi um iniciante como você.
Passo a passo: montando seu ambiente com Docker Compose
1. Acesse seu VPS via SSH
Para começar, você precisa se conectar ao seu servidor. Use um cliente SSH como Putty (Windows) ou o terminal nativo (macOS/Linux).
Conecte-se com o usuário e senha fornecidos no painel da GeHost:
ssh usuario@seu-ip-do-vps
Substitua usuario pelo seu nome de usuário (geralmente igual ao nome da conta no painel) e seu-ip-do-vps pelo IP do seu VPS (não compartilhamos IPs públicos aqui).
2. Instale o Docker Compose (se ainda não estiver instalado)
Se você já tem Docker instalado, provavelmente já tem o Compose. Mas para garantir, execute:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Depois, torne o arquivo executável:
sudo chmod +x /usr/local/bin/docker-compose
Verifique a instalação com:
docker-compose --version
3. Crie uma pasta para seu projeto
Vamos organizar tudo em um diretório próprio. No terminal, digite:
mkdir meu-projeto-docker && cd meu-projeto-docker
4. Crie o arquivo docker-compose.yml
Esse é o coração do seu projeto. Ele diz ao Docker como montar sua aplicação e o banco de dados.
Abra um editor de texto no terminal, como nano:
nano docker-compose.yml
Insira o seguinte conteúdo (exemplo básico com uma app Node.js e MySQL):
version: '3.8'
services:
app:
image: node:18-alpine
container_name: minha_app
working_dir: /app
volumes:
- ./app:/app
ports:
- "3000:3000"
command: npm start
depends_on:
- db
db:
image: mysql:8.0
container_name: meu_banco
environment:
MYSQL_ROOT_PASSWORD: senha-segura
MYSQL_DATABASE: meu_app
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
volumes:
db_data:
Salve e feche o arquivo:
- No nano: pressione Ctrl+O, depois Enter, depois Ctrl+X.
5. Crie a estrutura da sua aplicação (exemplo)
Na mesma pasta, crie uma pasta para o código da sua app:
mkdir app && cd app
Crie um arquivo simples para testar (ex: server.js):
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Olá do container app!');
});
app.listen(3000, () => {
console.log('App rodando na porta 3000');
});
Instale o Express:
npm init -y
npm install express
6. Inicie os containers com Docker Compose
Volte para a pasta raiz do projeto (onde está o docker-compose.yml) e execute:
docker-compose up -d
O -d significa "rodar em segundo plano". Agora, seus dois contêineres estão funcionando:
- Um com a sua aplicação (na porta 3000)
- Outro com o MySQL (na porta 3306)
7. Verifique se tudo está rodando
Use este comando para ver o status dos contêineres:
docker-compose ps
Se tudo estiver "Up", parabéns! Você acaba de orquestrar múltiplos contêineres com sucesso.
8. Acesse sua aplicação
Abra seu navegador e vá para:
http://seu-ip-do-vps:3000
Se você vir "Olá do container app!", está funcionando perfeitamente!
9. (Opcional) Acesse o banco de dados
Se quiser acessar o MySQL por ferramentas como MySQL Workbench ou phpMyAdmin, você pode:
- Instalar o phpMyAdmin em outro contêiner (com outro
docker-compose.yml). - Ou usar o terminal:
docker exec -it meu_banco mysql -uroot -p.
Pratique com segurança: dicas importantes
- Nunca deixe senhas de banco de dados expostas no código — use variáveis de ambiente em produção.
- Use volumes para salvar dados do banco, assim eles não desaparecem ao reiniciar os contêineres.
- Evite usar portas públicas como 3000 ou 3306 se não for necessário. Use proxies ou portas alternativas.
- Se precisar, use o cPanel para gerenciar arquivos e domínios, mas não misture isso com configurações de Docker.
Sensei diz: A cada erro, você aprende. A cada sucesso, você ganha confiança. A GeHost está aqui para te apoiar — e o suporte está disponível por 30 dias após a entrega.
Pronto! Você está no controle
Parabéns, mestre! Você acaba de dominar a orquestração de múltiplos contêineres com Docker Compose em seu VPS. Agora, sua aplicação e banco de dados estão vivos, organizados e prontos para crescer.
Se precisar de ajuda, lembre-se: o painel da GeHost está sempre à disposição. Acesse painel.gehost.com.br para gerenciar sua conta, domínios e e-mails.
Até a próxima aventura, com código no coração!