Resposta rápida: A recomendação é começar pelo plano VPS Brasil Básico (4 GB, 4 vCPUs, 100 GB NVMe, R$99/mês) e validar o fluxo real com docker stats --no-stream. O tamanho correto depende de dados, concorrência e retenção; os comandos abaixo mostram como medir sem inventar uma métrica que não foi coletada.
Veja a infraestrutura: VPS para Docker, Portainer e Coolify para colocar este projeto no ar.
limites Docker de CPU e RAM funciona melhor quando você separa o serviço público da operação interna: neste roteiro, o ponto de partida é uma VPS com 4 GB de RAM, 4 vCPUs e 100 GB NVMe para o cenário indicado. A primeira verificação usa docker stats --no-stream e o objetivo é deixar claro o que pode ser afirmado, o que precisa ser medido e como voltar atrás. O conteúdo é para equipes pequenas e profissionais de infraestrutura e não apresenta teste executado na infraestrutura do leitor como resultado garantido.
O que este cenário resolve
Limitar recursos exige observar comportamento de oom, throttling e dependências. A decisão central é tratar limites de recursos em containers de produção como uma operação completa: aplicação, dados, identidade, logs, atualização e recuperação precisam ter responsáveis e sinais observáveis.
A pergunta operacional
Antes de instalar, escreva qual pergunta você quer responder. Em um worker recebe limite baixo, acumula fila e parece saudável porque o container continua up, não basta saber que o processo subiu: você precisa verificar o caminho que o usuário ou o operador realmente usará. Isso evita transformar um painel carregado, um handshake recente ou um backup verde em prova de saúde completa.
O que fica fora do escopo
Este artigo não promete latência, disponibilidade, throughput ou taxa de entrega sem medição local. Versões, plugins, tamanho dos dados, regras de rede e padrão de uso mudam o resultado. Use o procedimento como base, registre as saídas e só então ajuste o plano ou a configuração.
Recursos, portas e plano inicial
Para o recorte deste guia, o ponto inicial é o VPS Brasil Básico, com 4 GB, 4 vCPUs, 100 GB NVMe e preço de catálogo de R$99/mês. A porta ou portas relevantes são definidas apenas pelos serviços que precisam ser públicos. Esses valores descrevem o catálogo e o desenho do laboratório; não são um benchmark do serviço.
O que medir no host
Registre RAM disponível, uso de CPU, espaço e inodes, processos, conexões e I/O antes e durante a operação. Para limites de recursos em containers de produção, a medida mais útil é a que aparece na jornada central: fila e worker, consulta e restauração, resposta HTTP, rota privada ou evento de auditoria. Um número isolado não explica uma degradação.
Quando subir de plano
Considere o VPS Brasil Performance quando o conjunto pedir 12 GB e 6 vCPUs por causa de múltiplos serviços, dados persistentes ou tarefas concorrentes; o catálogo informa 150 GB NVMe e R$169/mês. O VPS Brasil Ultra oferece 20 GB, 8 vCPUs e 200 GB NVMe por R$269/mês. A troca deve seguir métricas e um plano de janela, não uma promessa genérica.
Comparação de escolhas
A comparação abaixo reduz uma decisão ampla a quatro camadas. Em limites de recursos em containers de produção, a opção mais simples pode ser correta para um laboratório, mas a operação comercial exige atenção a persistência, acesso, evidência e retorno.
| Camada | Função | Decisão | Cuidado |
|---|---|---|---|
| CPU | tempo de processamento | quota | throttling |
| RAM | memória máxima | limit | OOM kill |
| PIDs | processos | pids-limit | fork storm |
| Reserva | prioridade | reservation | não é garantia |
Passo a passo verificável
Execute uma etapa por vez e guarde a saída com data, versão, host e contexto. O comando de referência é docker stats --no-stream, mas o critério de sucesso é o fluxo completo, não o fato de o comando existir.
- Liste serviços, picos, dependências e o que deve acontecer quando o limite for atingido.
- Defina limites graduais em staging, provoque carga controlada e acompanhe fila, latência e reinícios.
- Registre os valores aprovados no compose e revise após atualização de imagem ou aumento de tráfego.
1. Prepare o ambiente
Liste serviços, picos, dependências e o que deve acontecer quando o limite for atingido.
docker stats --no-stream
docker inspect app --format '{{json .HostConfig}}'
2. Aplique a configuração
Defina limites graduais em staging, provoque carga controlada e acompanhe fila, latência e reinícios.
docker update --memory 512m --cpus 1.0 app
docker stats --no-stream app
3. Valide e registre
Registre os valores aprovados no compose e revise após atualização de imagem ou aumento de tráfego.
docker events --since 10m
docker compose ps
docker compose logs --tail=100 worker
Erros comuns e como evitá-los
Erros operacionais quase sempre aparecem na fronteira entre camadas. Revise estes pontos antes de considerar o trabalho concluído:
Copiar limite de outro host sem medir
Evite copiar limite de outro host sem medir. Primeiro reduza a superfície exposta e confirme a rota de administração. Um serviço pode continuar funcionando em loopback ou rede privada sem uma porta pública adicional.
Limitar banco sem considerar cache e conexões
Não limitar banco sem considerar cache e conexões. Persistência, cópia independente e restauração são controles diferentes. Registre o arquivo, volume ou destino que realmente contém a informação necessária.
Ignorar oomkilled no diagnóstico
Também não ignorar OOMKilled no diagnóstico. Faça a mudança com versão, janela, healthcheck e retorno documentado. Se houver migração irreversível, trate isso como uma decisão separada.
Usar restart always para esconder instabilidade
Por fim, não usar restart always para esconder instabilidade. A validação deve representar o uso real, incluindo falha, reinício, permissão e dependência. Caso contrário, você só confirmou que o processo iniciou.
Practical evidence, limites e rollback
A evidência deste roteiro é uma procedimento reprodutível: ambiente Linux, comandos explícitos, versões e dados devem ser registrados por quem executar o teste. O resultado a observar em limites de recursos em containers de produção é o estado de cada etapa, a saída do comando e a resposta do fluxo central. Este lote não executou esses comandos na VPS do leitor, portanto não transforma o procedimento em medição de desempenho.
Antes de uma mudança, copie configuração e dados de forma recuperável. Depois, compare o estado esperado com o estado observado e preserve o último release ou dump válido. Se algo falhar, interrompa, restaure o componente anterior quando isso for seguro e reexecute o healthcheck. Não apague evidências durante o diagnóstico.
Checklist de aceite
Confirme nome e versão do software, portas públicas, permissões, volumes, espaço, logs, backup e caminho de recuperação. Registre o horário e o operador. Um checklist curto, repetível e ligado ao cenário é mais útil que uma promessa de disponibilidade sem método.
Perguntas relacionadas
Estas respostas condensam as dúvidas que normalmente aparecem antes do corte e apontam para a verificação que falta em cada uma.
limites Docker de CPU e RAM funciona em uma VPS pequena?
Pode funcionar para um cenário enxuto, mas a decisão depende de RAM, CPU, armazenamento, concorrência e dependências. Comece com o plano VPS Brasil Básico e valide o fluxo real antes de ampliar.
Qual porta deve ficar pública?
Somente a porta necessária para o usuário ou túnel. Neste cenário, as portas relevantes são definidas apenas pelos serviços que precisam ser públicos; componentes administrativos, bancos e filas devem ficar em loopback, VPN ou rede privada quando possível.
Como comprovar que a configuração funcionou?
Combine docker stats --no-stream, logs e um teste de jornada. Registre status, versão, tempo, permissões e resultado. Um processo ativo isoladamente não comprova que a integração, os dados ou o rollback estão corretos.
Quando devo fazer upgrade?
Quando a medição mostrar pressão persistente, fila crescendo, OOM, I/O ou falta de margem para manutenção. Compare com o VPS Brasil Performance ou o VPS Brasil Ultra usando os recursos de catálogo, sem tratar preço como prova de desempenho.
Próximo passo
Se o seu cenário cabe no recorte deste artigo, o próximo passo é provisionar o VPS Brasil Básico (4 GB, 4 vCPUs, 100 GB NVMe, R$99/mês), executar o checklist em staging e registrar o resultado antes do corte. Conheça o VPS Brasil Básico e escolha a capacidade pelo uso observado.
Comentários (4)
O Docker Compose com healthchecks configurados salvou meus deploys. O container agora só recebe tráfego quando está 100% pronto.
A explicação sobre as permissões de usuário não-root dentro do container fechou uma brecha de segurança crítica no nosso pipeline.
Estava tendo problemas com logs enchendo o disco no servidor. A configuração de log rotation com json-file resolveu de vez. Será que isso funciona também com ambientes híbridos?
As dicas de rede bridge interna e volumes persistentes deixaram nosso ambiente de produção muito mais seguro e organizado. Em qual parte do artigo você recomenda focar para quem está começando em produção?