Requisitos de um VPS para Docker
A grande vantagem do Docker é que o projeto inteiro — aplicação, banco de dados, fila, proxy reverso — é descrito em um único arquivo compose.yaml e muda de servidor em minutos. Mas ele impõe ao servidor virtual requisitos que um site comum em PHP não tem. Na tabela acima já ficaram apenas os planos que os atendem: KVM, a partir de 2 núcleos, 2 GB de memória e 30 GB em NVMe, com os de núcleo mais barato primeiro.
Virtualização: por que KVM
Os contêineres usam mecanismos do kernel Linux: namespaces, cgroups, bridges de rede, iptables. No KVM, o VDS tem kernel próprio, e o Docker é instalado do repositório oficial sem surpresas. No OpenVZ e no LXC, o kernel é compartilhado com a máquina host: ali o Docker ou não sobe, ou só funciona com configurações especiais do provedor, com limitações de rede e versões antigas. Não vale a pena perder uma noite descobrindo — escolha logo um VPS com KVM.
O segundo ponto é o driver de armazenamento. Por padrão, o Docker usa o overlay2, que exige suporte a OverlayFS no kernel. Se não houver, o Docker recorre ao driver vfs, que copia cada camada da imagem por inteiro: o disco enche várias vezes mais rápido e os builds ficam lentos. Dá para verificar o driver com o comando docker info logo após a instalação.
Quanta memória é necessária para vários contêineres
O próprio daemon do Docker ocupa cerca de 100 MB. Daí em diante, calcule pela composição da stack:
- Nginx ou Caddy — 20–50 MB;
- aplicação em Python, Node.js ou PHP-FPM — 100–300 MB por processo;
- PostgreSQL ou MySQL — a partir de 200 MB, bem mais sob carga;
- Redis — dezenas de megabytes mais o volume de dados.
Uma stack típica «proxy + aplicação + banco + Redis» cabe em 1–1,5 GB, por isso 2 GB é um mínimo razoável, e para vários projetos no mesmo servidor é melhor ter 4 GB de RAM. Defina limites de memória para os contêineres e adicione um arquivo de swap: sem isso, um processo que cresce demais derruba os vizinhos via OOM killer.
Disco: o espaço some sem você perceber
As imagens pesam de dezenas de megabytes a um gigabyte, e a cada atualização as versões antigas ficam no disco. Os logs dos contêineres, por padrão, são gravados sem limite de tamanho. Daí três regras: configure a rotação de logs no daemon.json (parâmetros max-size e max-file), rode periodicamente docker system prune e não escolha menos de 30 GB. Se houver bancos de dados nos contêineres, dê atenção aos planos com NVMe — em operações de escrita aleatória, a diferença em relação ao SSD SATA é perceptível.
Rede, segurança e pagamento
Uma armadilha comum: as portas publicadas com -p são abertas pelo Docker ignorando o UFW, e as regras do firewall não valem para elas. Vincule os serviços internos a 127.0.0.1 ou use as redes internas do compose. Em algumas regiões e redes, o download de imagens do Docker Hub às vezes fica lento ou limitado, então vale configurar um espelho de registry com antecedência. As formas de pagamento de cada plano estão na coluna «Pagamento»; os preços são atualizados com base nos dados dos sites dos provedores.