Servidor & DevOps 5 visualizações

Como orquestrar múltiplos containers (app + banco de dados) com Docker Compose no VPS

Ver no WHMCS

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!

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.