Gerenciar múltiplos sites em um único servidor é um ato de equilíbrio arriscado. Ou você paga caro por várias VPS pequenas, ou você joga todos os sites em um único ambiente, rezando para que um não derrube o outro. Mas e se houvesse uma maneira de dar a cada site sua própria “casa” isolada, com seus próprios recursos, tudo dentro do mesmo “terreno” (sua VPS)? É exatamente isso que vamos construir hoje. Este guia mostrará como usar múltiplos WordPress com Docker em uma única VPS, de forma segura, eficiente e escalável.
Usar o Docker transforma seu servidor de um frágil castelo de cartas em um conjunto robusto de blocos de construção independentes. Para entender como, é útil ver o que os próprios criadores dizem em sua documentação oficial do Docker, que o define como uma plataforma para “construir, compartilhar e rodar aplicações” em ambientes isolados.
Sumário
ToggleO Que é Docker e Por Que Usar no WordPress?
Antes de mergulharmos nos passos, vamos entender nossos dois conceitos principais: Docker e Containers.
A Analogia (Docker é como LEGOs):
Pense na sua VPS como um grande “terreno” vazio. Da forma tradicional, para construir uma “casa” (site WordPress), você teria que trazer cimento (PHP), tijolos (MySQL), fiação (Nginx/Apache) e construir tudo do zero no local. Se você quisesse construir uma segunda casa ao lado, você teria que usar os mesmos materiais. Se a “Casa A” precisasse de fiação de 220v (PHP 8.1) e a “Casa B” de 110v (PHP 7.4), você teria um problema sério.
Docker muda esse jogo. Ele usa “Containers”.
- Um Container é como uma casa pré-fabricada (um “LEGO” gigante). Ele já vem com tudo o que o site WordPress precisa para funcionar (o próprio WP, a versão exata do PHP, a conexão com o banco de dados) tudo selado dentro dele.
Você simplesmente “coloca” esse container no seu terreno (VPS). Ele funciona perfeitamente e é 100% isolado da casa ao lado. A “Casa A” pode rodar PHP 8.1 e a “Casa B” pode rodar PHP 7.4, no mesmo servidor, sem nunca se tocarem. Se um site for invadido ou quebrar, ele fica contido dentro de sua “casa”, sem afetar os vizinhos.
Benefícios Imediatos para Múltiplos WordPress
- Isolamento Total: Um plugin quebrado ou um ataque de malware em um site não afeta nenhum outro.
- Sem Conflitos de Versão: Rode sites com PHP, MySQL ou qualquer outra dependência diferente, lado a lado.
- Eficiência: Containers são muito mais leves que máquinas virtuais completas. Você pode hospedar dezenas de sites em uma VPS KVM robusta que antes mal aguentava cinco.
- Portabilidade: A “planta” da sua casa (um arquivo `docker-compose.yml`) pode ser usada para construir uma casa idêntica em qualquer outra VPS que tenha o Docker instalado. Mudar de provedor de hosting se torna trivial.
Os 4 Passos para Hospedar Múltiplos WordPress com Docker
Vamos ao guia prático. Dividimos o processo em 4 passos principais, desde a preparação do terreno até a construção de múltiplas “casas”.
Passo 1: Preparando sua VPS (O Terreno)
Primeiro, você precisa do seu “terreno”. Assumimos que você já tenha uma VPS limpa (recomendamos Ubuntu 22.04). O primeiro passo é instalar as “ferramentas de construção”.
- Instale o Docker: É o motor principal que permite rodar containers.
- Instale o Docker Compose: Esta é a ferramenta de “planta baixa”. Em vez de construir um container manualmente (o que é complexo), você escreve um arquivo simples (
docker-compose.yml) dizendo “eu quero um container de WordPress e um de MySQL, e quero que eles conversem entre si”. O Docker Compose lê essa planta e constrói tudo para você.
A instalação é direta. No Ubuntu, seria algo assim:
# Atualiza os pacotes
sudo apt update
# Instala o Docker
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
# Instala o Docker Compose (verifique a versão mais recente no GitHub)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Passo 2: O Cérebro da Operação – O Reverse Proxy (O Carteiro)
Aqui está um ponto crucial. Sua VPS tem apenas um “endereço” principal (um endereço IP). Se você tem 10 containers de sites, como o servidor sabe para qual container enviar um visitante que digita cliente-a.com?
A Analogia (O Carteiro do Prédio):
Pense no Reverse Proxy (Proxy Reverso) como o carteiro de um prédio de apartamentos. Sua VPS é o prédio, com um único endereço (ex: Rua Principal, 123). Os containers são os apartamentos (Apto 101, Apto 102, etc.).
O visitante (tráfego da web) chega no endereço “Rua Principal, 123”. O carteiro (Reverse Proxy) olha o nome na carta (o domínio, ex: cliente-a.com) e automaticamente entrega a carta no “Apto 101” (o container do Cliente A). Se a carta for para cliente-b.com, ele entrega no “Apto 102”.
Para isso, recomendamos o **Traefik**. É um proxy reverso moderno que “ouve” o Docker. Quando você lança um novo container de WordPress, o Traefik o detecta automaticamente e começa a rotear o tráfego para ele. Ele também pode gerar e renovar certificados SSL (HTTPS) automaticamente.
Você “instala” o Traefik como mais um container. Crie um arquivo docker-compose.yml para ele e rode-o. Ele ficará escutando todo o tráfego que chega na sua VPS.
Passo 3: Criando seu Primeiro Site (A Primeira Casa)
Agora a mágica acontece. Vamos criar a “planta baixa” para um site WordPress. Crie uma pasta para seu primeiro cliente (ex: /home/docker/cliente-a) e, dentro dela, crie um arquivo docker-compose.yml:
version: '3.8'
services:
# Container do Banco de Dados
db_cliente_a:
image: mysql:8.0
volumes:
- db_data_cliente_a:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'SENHA_MUITO_FORTE_AQUI'
MYSQL_DATABASE: 'wp_clientea'
MYSQL_USER: 'user_clientea'
MYSQL_PASSWORD: 'OUTRA_SENHA_FORTE_AQUI'
# Container do WordPress
wordpress_cliente_a:
image: wordpress:latest # Usa a imagem oficial do WordPress
depends_on:
- db_cliente_a
volumes:
- wp_files_cliente_a:/var/www/html
restart: always
environment:
WORDPRESS_DB_HOST: db_cliente_a:3306
WORDPRESS_DB_USER: 'user_clientea'
WORDPRESS_DB_PASSWORD: 'OUTRA_SENHA_FORTE_AQUI'
WORDPRESS_DB_NAME: 'wp_clientea'
# Esta é a "etiqueta" que diz ao "carteiro" (Traefik) qual é o endereço
labels:
- "traefik.enable=true"
- "traefik.http.routers.wp_clientea.rule=Host(`cliente-a.com`)"
- "traefik.http.services.wp_clientea.loadbalancer.server.port=80"
# Habilita o SSL (HTTPS) automaticamente
- "traefik.http.routers.wp_clientea.entrypoints=websecure"
- "traefik.http.routers.wp_clientea.tls.certresolver=meu_resolver_ssl"
volumes:
db_data_cliente_a:
wp_files_cliente_a:
networks:
default:
external:
name: traefik_network # Conecta na mesma rede do "carteiro"
Não se assuste! Vamos analisar:
- services: Define os dois containers que precisamos:
db_cliente_a(MySQL) ewordpress_cliente_a(WordPress). - volumes: Isso é crucial. Diz ao Docker: “Salve os arquivos do banco de dados (
db_data...) e os arquivos do site (wp_files...) fora do container, no disco da VPS.” Isso garante que, se você deletar o container, seus dados (posts, plugins) estarão seguros. - labels: São as instruções para o “carteiro” (Traefik). A linha
Host(`cliente-a.com`)diz: “Qualquer tráfego paracliente-a.com, envie para este container.” - networks: Conecta seus containers à mesma rede que o Traefik está monitorando.
Para lançar o site, entre na pasta /home/docker/cliente-a e rode: docker-compose up -d. Em 30 segundos, seu site estará no ar.
Passo 4: Escalando para Múltiplos Sites (Construindo Mais Casas)
E agora, como adicionar o cliente-b.com?
É aqui que seu investimento valeu a pena. Você não precisa instalar outro PHP, outro MySQL, ou configurar outro servidor. Você simplesmente repete o Passo 3 com nomes diferentes.
- Crie uma nova pasta:
/home/docker/cliente-b - Copie o arquivo
docker-compose.ymldo Cliente A para a pasta do Cliente B. - Abra o arquivo e altere:
- Todos os
_cliente_apara_cliente_b(ex:db_cliente_aviradb_cliente_b). - As senhas no
environment(por segurança). - A label do Host para:
Host(`cliente-b.com`)
- Todos os
- Na pasta
/home/docker/cliente-b, rode:docker-compose up -d.
É isso. Em mais 30 segundos, o Traefik (nosso carteiro) detecta o novo container, vê sua etiqueta cliente-b.com, busca um certificado SSL para ele e o coloca no ar. Totalmente isolado do Cliente A.
Você pode repetir isso para cliente-c.com, cliente-d.com, e assim por diante, até o limite de recursos (CPU e RAM) da sua VPS.
Dicas de Profissional para Gerenciar seu Ambiente
Gerenciar **múltiplos WordPress com Docker** é poderoso, mas exige boas práticas.
- Faça Backup dos Volumes: Seus dados (banco de dados e arquivos
wp-content) vivem nos “volumes” que definimos. Sua rotina de backup deve focar em fazer cópias desses volumes, que geralmente estão em/var/lib/docker/volumes/. - Atualizando o WordPress (ou PHP): Para atualizar o PHP do Cliente A (ex: de
wordpress:latestparawordpress:php8.1), você só precisa:
1. Alterar a linhaimage: wordpress:latestnodocker-compose.ymldele.
2. Rodardocker-compose pull(para baixar a nova imagem).
3. Rodardocker-compose up -d(para recriar o container com a nova imagem).O site ficará offline por cerca de 10 segundos e voltará com a nova versão, sem afetar nenhum outro site. - Use o Portainer: Se você não gosta de linha de comando, use o Portainer. É uma interface gráfica (que também roda em um container!) que lhe dá um painel visual de todas as suas “casas” (containers), permitindo parar, iniciar e monitorar tudo facilmente. É um excelente complemento, como detalhado no site oficial do Portainer.
- Monitore Recursos: Fique de olho no uso de CPU e RAM da sua VPS. Embora os containers sejam leves, 50 sites WordPress ainda consumirão recursos. Ferramentas como
htopou um monitoramento de containers dedicado são essenciais.
Conclusão: Seu Checklist para o Sucesso com Docker
Você conseguiu. Você deixou para trás o “inferno das dependências” e transformou sua VPS de um frágil castelo de cartas em uma plataforma de hospedagem multi-tenant, segura e eficiente. Cada site agora vive em seu próprio universo isolado, permitindo que você durma tranquilamente, sabendo que um plugin quebrado não causará um desastre em cascata.
Precisa de ajuda com Múltiplos WordPress Docker? Fale com os especialistas da StayCloud!
Avalie este post!
Média da classificação 0 / 5. Número de votos: 0
Nenhum voto até agora! Seja o primeiro a avaliar este post.


