Como usar Docker para isolar diferentes versões de PHP no mesmo VPS (Guia para Iniciantes)
Olá, viajante da web! Seja bem-vindo ao nosso canto do conhecimento, onde aprendemos juntos a cuidar da sua hospedagem com leveza e sabedoria. Hoje vamos conversar sobre um tema poderoso, mas que pode parecer assustador: usar Docker para rodar versões diferentes de PHP no mesmo servidor.
Imagine isso: você tem um site antigo que só funciona com PHP 7.4, e outro novo que exige PHP 8.3. No passado, isso era uma dor de cabeça — ou você quebrava um site, ou precisava de múltiplos servidores. Hoje, com Docker, você pode ter ambos os mundos funcionando lado a lado, sem se atrapalhar.
Seu VPS (servidor virtual) é como um terreno fértil. Docker é o seu jardim inteligente: cada versão de PHP é uma planta diferente, em sua própria caixa de terra, sem atrapalhar as outras.
Antes de começar: você precisa de acesso técnico
Este guia é para quem já tem acesso ao terminal do servidor (SSH), ou usa uma interface como o cPanel com acesso avançado. A GeHost oferece planos com acesso SSH em alguns planos — consulte seu painel no painel.gehost.com.br para verificar se sua hospedagem permite isso.
💡 Dica do Sensei: Se você não tem acesso SSH, fale com nosso suporte. Podemos ajudar a preparar o ambiente de forma segura e dentro das políticas da GeHost.
Passo a passo: Isolando versões de PHP com Docker
-
Conecte-se ao seu servidor via SSH
Use um cliente como Putty (Windows) ou o terminal do seu sistema (Linux/macOS). Conecte-se usando o IP do seu servidor e suas credenciais (usuário e senha) fornecidos pela GeHost.
-
Instale o Docker (se ainda não estiver instalado)
Execute este comando no terminal:
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
Este script instala o Docker oficialmente, com segurança e sem complicações.
-
Crie um diretório para o projeto
Para organizar tudo, vamos criar uma pasta onde vamos guardar os arquivos do Docker:
mkdir ~/php-versions && cd ~/php-versions
-
Crie arquivos Docker para cada versão de PHP
Você vai precisar de um arquivo
Dockerfilepara cada versão. Vamos começar com PHP 7.4 e PHP 8.3.Para PHP 7.4:
# Arquivo: Dockerfile.php74 FROM php:7.4-apache # Instala extensões comuns RUN docker-php-ext-install mysqli pdo_mysql # Copia o código do seu site para o Apache COPY ./site1 /var/www/html # Habilita o módulo Apache RUN a2enmod rewrite EXPOSE 80 CMD ["apache2-foreground"]Para PHP 8.3:
# Arquivo: Dockerfile.php83 FROM php:8.3-apache # Instala extensões comuns RUN docker-php-ext-install mysqli pdo_mysql # Copia o código do seu site novo COPY ./site2 /var/www/html # Habilita o módulo Apache RUN a2enmod rewrite EXPOSE 80 CMD ["apache2-foreground"] -
Construa as imagens Docker
Com os arquivos prontos, vamos criar as imagens:
sudo docker build -f Dockerfile.php74 -t php74-site .
sudo docker build -f Dockerfile.php83 -t php83-site .
Isso cria duas "caixas" (imagens) com PHP 7.4 e PHP 8.3 prontas para rodar.
-
Execute os containers com portas diferentes
Para não ter conflito, vamos usar portas diferentes:
sudo docker run -d -p 8074:80 --name site_php74 php74-site
sudo docker run -d -p 8083:80 --name site_php83 php83-site
Agora:
- Seu site com PHP 7.4 estará acessível em http://seu-ip:8074
- Seu site com PHP 8.3 estará em http://seu-ip:8083
-
Verifique se está tudo funcionando
Abra um navegador e acesse os endereços acima. Você verá cada site rodando com sua versão de PHP, sem interferência.
Como gerenciar esses containers no futuro?
Quando precisar parar, reiniciar ou ver o status:
sudo docker ps— mostra os containers em execuçãosudo docker stop site_php74— para o container PHP 7.4sudo docker start site_php83— inicia o PHP 8.3 novamentesudo docker rm site_php74— remove o container (se quiser começar de novo)
✨ Dica do Sensei: Use nomes claros para seus containers. Isso evita confusão no futuro. E sempre faça backup dos arquivos do seu site antes de mexer no Docker.
Importante: O que a GeHost oferece (e o que não)
Na GeHost, seu servidor é um ambiente seguro e compartilhado. Usar Docker é uma forma poderosa de organizar seu ambiente, mas:
- Não é possível instalar Docker diretamente no cPanel — ele exige acesso ao terminal.
- Seu plano pode ou não permitir acesso SSH. Verifique no painel do cliente.
- Se precisar de ajuda, nosso suporte está disponível por 30 dias após a entrega — não hesite em pedir!
Se quiser, podemos te ajudar a montar um script personalizado para seu caso específico. É só chamar.
Conclusão: Você está no controle
Com Docker, você não precisa escolher entre o passado e o futuro. Pode manter seu site antigo com PHP 7.4 e desenvolver o novo com PHP 8.3 — tudo no mesmo servidor, em paz.
Como dizem os mestres: “O verdadeiro desenvolvedor não tem medo do futuro — ele o organiza.”
Se este guia te ajudou, compartilhe com alguém que também quer entender melhor seu servidor. E lembre-se: você não está sozinho. A GeHost está aqui com você.
Com carinho,
Sensei da GeHost
*Grupo: G e Soluções e Eventos LTDA (CNPJ: 46.647.904/0001-04)*