# Docker no VPS: Guia Passo a Passo para Iniciantes em 2026

**Autor:** Maicon Ramos
**Categoria:** Ferramentas Dev
**Publicado:** 2026-07-08
**Atualizado:** 2026-07-24
**Canonical:** https://runzos.com/docker-no-vps-guia-passos-iniciantes-2026

Docker empacota aplicações em containers: ambientes isolados que rodam em qualquer VPS com Linux. Neste guia prático de 2026, você vai instalar Docker no Ubuntu 22.04, dominar os comandos essenciais, subir WordPress e n8n com Docker Compose, e evitar erros que consomem toda a RAM de VPS de entrada. Você comprou uma VPS para sair da hospedagem compartilhada. Instalou um painel de controle, subiu alguns serviços, e em duas horas descobriu que 2 GB de RAM não são tanta coisa assim. O culpado não é a VPS: é a falta de planejamento antes de rodar containers. Segundo dados de 2025-2026, 92% dos profissionais de TI usam containers em produção. Docker não é mais uma tecnologia experimental — é o padrão para empacotar e distribuir aplicações. Mas adotar containers sem entender o impacto no hardware é o erro mais comum de quem começa com VPS. Este guia foi feito para o dev brasileiro que tem uma VPS (ou vai contratar uma) e quer usar Docker do jeito certo: com comandos reais, exemplos práticos e dicas honestas sobre recursos limitados. Docker em VPS: containers isolados rodando aplicacoes em servidor Ubuntu Linux O que é Docker (e por que você deveria usar no seu VPS) 💡 Vai rodar n8n numa VPS? A gente comparou o preço real em cada provedor — com renovação e requisitos — em VPS para n8n. 💡 Antes de escolher: a Calculadora de Custo de VPS e Hospedagem compara o preço real de 41 planos — promoção, renovação e câmbio — e mostra qual sai mais barato pro seu caso. Docker é uma plataforma que cria ambientes isolados chamados containers. Cada container carrega uma aplicação e suas dependências (bibliotecas, configurações e variáveis de ambiente), sem interferir no sistema hospedeiro nem nos outros containers. Container não é máquina virtual — entenda a diferença A confusão mais comum de quem começa é achar que container e VM são a mesma coisa. Não são. A diferença está no nível de isolamento: Característica Container Docker Máquina Virtual Isolamento | Kernel compartilhado | Kernel próprio | | Performance | Praticamente nativa | Overhead do hypervisor | | Inicialização | Segundos | Minutos | | Tamanho da imagem | Dezenas a centenas de MB | GB | | Uso de RAM | Só o processo rodando | SO convidado + processo | Uma VM roda um sistema operacional completo (Linux convidado sobre Linux hospedeiro), o que consome recursos fixos mesmo sem aplicação rodando. Um container roda apenas o processo da aplicação, compartilhando o kernel do hospedeiro. Por isso containers inicializam em segundos e consomem menos RAM. Container compartilha o kernel do hospedeiro e consome menos recursos que uma VM Para que serve Docker no dia a dia de um VPS Os usos mais comuns de Docker em VPS no Brasil: – Self-hosting de automações: n8n em container com PostgreSQL e Redis– Site WordPress: instância isolada com MySQL, facilmente replicável– Ambiente de desenvolvimento: banco de dados, filas, APIs em containers separados– Proxy reverso: Traefik ou Nginx gerenciando SSL de múltiplos serviços O ganho principal é previsibilidade: o container que roda na sua máquina local é o mesmo que roda no VPS. Chega de “na minha máquina funciona”. Instalação do Docker no Ubuntu 22.04/24.04 LTS A instalação do Docker Engine no Ubuntu é o primeiro passo prático. A documentação oficial do Docker mantém as instruções atualizadas. Aqui está a versão resumida e testada. Método 1: Template 1-click da Hostinger (para iniciantes) Se você contratou uma VPS na Hostinger, o caminho mais rápido é usar o template de SO com Docker pré-instalado. No painel da Hostiner, ao criar uma nova VPS, escolha o template “Ubuntu 22.04 64bit com Docker”. O servidor já vem com Docker Engine, containerd e Docker Compose V2 instalados. É a opção ideal para quem quer pular a instalação manual e ir direto para os comandos práticos. A documentação oficial também oferece o script de instalação automatizada para quem prefere começar de um sistema limpo. Método 2: Instalação manual passo a passo A instalação manual em 5 comandos: bash# Atualizar pacotes e instalar pré-requisitossudo apt update && sudo apt install -y ca-certificates curl# Adicionar a chave GPG oficial do Dockersudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.asc# Adicionar o repositório do Dockerecho "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# Instalar Docker Engine + Docker Compose V2sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin Pronto. Docker está instalado. Teste com: bashsudo docker run hello-world Se aparecer uma mensagem de confirmação do Docker, a instalação funcionou. Pós-instalação: configurar Docker sem sudo Por padrão, o daemon do Docker roda como root. Para executar comandos sem sudo, adicione seu usuário ao grupo docker: bashsudo usermod -aG docker $USER Saia da sessão SSH e entre novamente para o grupo ser aplicado. Depois disso, docker ps funciona sem sudo. Os passos de pós-instalação explicam isso em detalhes. Comandos essenciais do Docker para gerenciar containers no terminal do VPS Comandos essenciais de Docker para começar Cinco comandos cobrem 90% do que você vai fazer no dia a dia: Comando O que faz Exemplo docker run | Cria e inicia um container | docker run -d -p 8080:80 nginx | | docker ps | Lista containers rodando | docker ps -a (inclui parados) | | docker stop | Para um container | docker stop container_id | | docker rm | Remove um container | docker rm container_id | | docker logs | Exibe logs de um container | docker logs -f container_id | Para gerenciar imagens: – docker images: lista imagens baixadas localmente– docker pull nome-da-imagem: baixa uma imagem sem rodar o container– docker rmi nome-da-imagem: remove uma imagem não utilizada Para executar comandos dentro de um container rodando: bashdocker exec -it container_id bash Isso abre um terminal interativo dentro do container. Útil para depuração. Docker Compose — orquestrando múltiplos containers Docker Compose permite definir e rodar múltiplos containers com um único arquivo. Em vez de digitar cinco docker run com parâmetros diferentes, você escreve um docker-compose.yml e executa docker compose up. O que é Docker Compose e quando usar Docker Compose é uma ferramenta para definir aplicações multi-container. Você declara serviços, redes e volumes num arquivo YAML. Um comando sobe tudo junto. Use Docker Compose quando sua aplicação depende de mais de um serviço, como n8n + PostgreSQL, WordPress + MySQL, API + Redis. Para um container isolado, basta o comando docker run. Desde 2026, o Docker Compose V2 vem como plugin do Docker Engine. O comando é docker compose (sem hífen). Exemplo: docker-compose.yml para WordPress + MySQL yamlversion: '3.8'services: wordpress: image: wordpress:latest restart: always ports: - "8080:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wpuser WORDPRESS_DB_PASSWORD: senha_segura WORDPRESS_DB_NAME: wordpress volumes: - wp_data:/var/www/html db: image: mysql:8.0 restart: always environment: MYSQL_DATABASE: wordpress MYSQL_USER: wpuser MYSQL_PASSWORD: senha_segura MYSQL_ROOT_PASSWORD: root_senha_segura volumes: - db_data:/var/lib/mysqlvolumes: wp_data: db_data: Salve como docker-compose.yml e execute docker compose up -d no diretório. WordPress estará acessível em http://seu-vps:8080. Comandos úteis do Compose – docker compose up -d: sobe todos os serviços em background– docker compose down: para e remove todos os serviços– docker compose logs -f: acompanha logs de todos os serviços– docker compose ps: status dos serviços definidos no arquivo Docker Compose na prática com n8n n8n é a plataforma de automação mais usada por devs brasileiros para integrações. Rodar n8n com Docker Compose é o padrão recomendado pela documentação oficial da n8n. docker-compose.yml para n8n + PostgreSQL + Redis yamlversion: '3.8'services: n8n: image: n8nio/n8n:latest restart: always ports: - "5678:5678" environment: - N8N_DATABASE_TYPE=postgresdb - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_DATABASE=n8n - DB_POSTGRESDB_USER=n8n - DB_POSTGRESDB_PASSWORD=n8n_seguro - N8N_ENCRYPTION_KEY=chave_32_caracteres volumes: - n8n_data:/home/node/.n8n depends_on: postgres: condition: service_healthy redis: condition: service_started postgres: image: postgres:15-alpine restart: always environment: - POSTGRES_USER=n8n - POSTGRES_PASSWORD=n8n_seguro - POSTGRES_DB=n8n volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U n8n"] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine restart: always volumes: - redis_data:/datavolumes: n8n_data: postgres_data: redis_data: Para subir: docker compose up -d. n8n estará em http://seu-vps:5678. Comparado com n8n vs Make: open source vs cloud, o self-hosting com Docker dá controle total dos dados e workflows, sem limites de execução por plano. Proxy reverso com Traefik (SSL automático) Para expor n8n na porta 443 com HTTPS, adicione Traefik como proxy reverso: yaml traefik: image: traefik:v3.0 restart: always ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock - traefik_data:/letsencrypt command: - "--providers.docker=true" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.leresolver.acme.tlschallenge=true" - "--certificatesresolvers.leresolver.acme.email=seu@email.com" - "--certificatesresolvers.leresolver.acme.storage=/letsencrypt/acme.json"volumes: traefik_data: E adicione labels no serviço n8n para o Traefik rotear automaticamente. O SSL via Let’s Encrypt é automático. O template 1-click da Hostinger (e quando usar vs manual) A Hostinger oferece um template 1-click para n8n + Docker no painel VPS. Você clica, escolhe o plano, e o servidor já vem com n8n rodando em container. Use o template 1-click quando: – Você quer testar n8n em minutos– Não precisa de customizações no docker-compose– Está começando com Docker Use o método manual quando: – Precisa de PostgreSQL + Redis separados– Vai adicionar outros serviços (WordPress, API própria)– Quer controle sobre versões e volumes Backup do n8n: volumes e exportação de workflows Backup de volumes Docker é simples com tar: bashdocker run --rm -v n8n_data:/data -v $(pwd):/backup alpine tar czf /backup/n8n_backup_$(date +%Y%m%d).tar.gz -C /data. Para restaurar: bashdocker run --rm -v n8n_data:/data -v $(pwd):/backup alpine tar xzf /backup/n8n_backup_20260706.tar.gz -C /data Além dos volumes, exporte workflows individuais pela interface do n8n (formato JSON). Isso protege contra perda de configurações específicas. Segurança: non-root user, firewall e boas práticas Adicionar usuário ao grupo docker Como vimos, sudo usermod -aG docker $USER resolve o acesso sem sudo. O daemon do Docker continua rodando como root: apenas o controle via socket é delegado. Firewall: liberar apenas portas necessárias No UFW do Ubuntu: bashsudo ufw allow 22/tcp # SSHsudo ufw allow 80/tcp # HTTPsudo ufw allow 443/tcp # HTTPSsudo ufw allow 5678/tcp # n8n (se for acesso direto, sem proxy)sudo ufw enable Nunca libere portas de banco de dados (5432 PostgreSQL, 3306 MySQL) publicamente. Os containers de banco se comunicam via rede interna do Docker. Docker rootless mode (para quem precisa de mais segurança) O modo rootless do Docker roda o daemon sem privilégios de root. Oferece isolamento extra, mas tem limitações: portas abaixo de 1024 não funcionam diretamente e montagens de volume podem exigir configuração adicional. Para VPS de uso pessoal, o modo padrão com grupo docker é suficiente. Monitoramento com docker stats O comando nativo mais importante para VPS com recursos limitados: bashdocker stats Exibe em tempo real o consumo de CPU, memória, rede e disco de todos os containers. Essencial para identificar containers que estão consumindo mais do que deveriam. Monitoramento com docker stats para VPS com recursos limitados Docker em VPS com recursos limitados (1-2 GB RAM) Aqui está o ponto que nenhum outro guia aborda com honestidade: Docker em VPS de entrada exige planejamento. Síndrome do Container Vazio é o erro que todo iniciante comete: instala Docker, sobe 5 containers “para testar”, e descobre que consumiu toda RAM da VPS sem rodar nada produtivo. Cada container ocupa pelo menos 50-100 MB do runtime — mesmo parado. Uma VPS de 1 GB com 8 containers rodando hello-world já está quase sem recurso. Quantos containers cabem em 1 GB de RAM? Depende das aplicações, mas uma estimativa realista: – n8n + PostgreSQL + Redis: ~400-600 MB– WordPress + MySQL: ~350-500 MB– Nginx estático: ~30-50 MB– Traefik: ~50-80 MB Com 1 GB de RAM, você roda confortavelmente 2-3 serviços essenciais. Com 2 GB, sobe para 4-5. Nunca suba um container “só pra ver o que acontece”: ele vai consumir memória que poderia estar disponível para serviços produtivos. Imagens Alpine vs Ubuntu (a Regra do Dockerfile Magro) Imagens Alpine (5 MB) contra Ubuntu (80 MB+): para cada container, a escolha da imagem base define consumo de disco e RAM. Sempre prefira variantes -alpine ou -slim sempre que possível: – node:18-alpine em vez de node:18 (economia de ~700 MB)– postgres:15-alpine em vez de postgres:15 (economia de ~200 MB)– python:3.11-slim em vez de python:3.11 (economia de ~500 MB) A diferença acumulada em 4 containers pode ser de 1-2 GB de disco e centenas de MB de RAM. docker compose profiles para ambientes dev/prod Use perfis do Compose para separar serviços de desenvolvimento dos de produção: yamlservices: n8n: image: n8nio/n8n:latest profiles: ["prod", "dev"] mailpit: image: axllent/mailpit profiles: ["dev"] # só sobe em desenvolvimento bash# Produção (só n8n)docker compose --profile prod up -d# Desenvolvimento (n8n + ferramentas auxiliares)docker compose --profile dev up -d Isso evita containers de desenvolvimento ocupando RAM em produção. Quando evitar Docker no VPS Docker não é bala de prata. Há cenários onde ele adiciona complexidade sem benefício real: – Um único serviço simples: uma API Node.js que poderia rodar nativa com PM2. Docker adiciona uma camada de configuração e manutenção que não compensa.– VPS com menos de 1 GB RAM: o runtime do Docker + containerd + networking consome recursos fixos. Uma aplicação rodando nativa num Alpine direto ocuparia menos.– Aplicações que exigem acesso direto a hardware: GPU, dispositivos USB, acesso raw a disco. Docker abstrai o hardware e adiciona complexidade.– Equipe sem familiaridade com containers: se você (ou sua equipe) nunca usou Docker antes, o primeiro mês vai ser de aprendizado. Para projetos com prazo curto, uma alternativa gerenciada como Turbo Cloud resolve sem a curva de aprendizado. A leitura do Runzos é honesta: Docker é uma ferramenta excelente, mas é o dev que decide onde ela faz sentido, não o contrário. FAQ O que é Docker Compose e para que serve? Docker Compose é uma ferramenta para definir e rodar múltiplos containers com um único arquivo de configuração YAML. Você declara serviços, redes e volumes, e um comando (docker compose up) sobe tudo. Serve para aplicações multi-container como n8n + PostgreSQL, WordPress + MySQL, ou API + Redis + fila. Como instalar Docker no Ubuntu? Adicione o repositório oficial do Docker, instale os pacotes docker-ce docker-ce-cli containerd.io docker-compose-plugin com apt, e adicione seu usuário ao grupo docker para rodar comandos sem sudo. O passo a passo completo está na seção de instalação acima, com comandos para copiar e colar. Docker funciona em qualquer VPS? Docker funciona em qualquer VPS com Linux (kernel 3.10+). A grande maioria dos provedores suporta, como Hostinger, DigitalOcean, Hetzner, Turbo Cloud. VPS com Windows Server não rodam Docker nativamente (precisa de WSL2 ou VM Linux). Qual a diferença entre container e VM? Container compartilha o kernel do sistema hospedeiro e roda só a aplicação: inicializa em segundos e ocupa menos recursos. VM tem kernel próprio, sistema operacional completo e hypervisor; inicializa em minutos e ocupa mais RAM e disco. Container isola processos; VM isola o sistema inteiro. Como rodar n8n com Docker? Use o docker-compose.yml da seção acima com n8n + PostgreSQL + Redis. Execute docker compose up -d no diretório do arquivo. n8n estará disponível na porta 5678. Para SSL automático, adicione Traefik como proxy reverso. Docker Compose em produção é seguro? Sim, desde que você feche os gaps operacionais: faça backup regular dos volumes, use imagem pinning (versão específica, nunca :latest em produção), configure health checks, e monitore recursos com docker stats. Não exponha portas de banco de dados publicamente. Como fazer backup de containers Docker? Use o comando com tar para compactar volumes: docker run --rm -v volume_name:/data -v $(pwd):/backup alpine tar czf /backup/backup.tar.gz -C /data.. Para restore, inverta o tar. Para dados do n8n, exporte workflows individuais em JSON pela interface. Conclusão Docker transformou a forma como aplicações são empacotadas e distribuídas. Para o dev brasileiro com VPS, dominar containers significa previsibilidade — o que roda na sua máquina roda no servidor, sem surpresas de dependência. Comece com um serviço por vez. Use imagens Alpine para economizar recursos. Monitore com docker stats. E lembre-se da Síndrome do Container Vazio: cada container a mais consome memória que você pode não ter sobrando. Se você ainda não tem uma VPS para começar, a Hostinger oferece planos VPS a partir de R$ 29,90/mês com template 1-click para Docker e n8n. Use o cupom para 10% de desconto. Para quem prefere não gerenciar containers, Turbo Cloud é a alternativa gerenciada, ideal para WordPress sem preocupação com manutenção de servidor.

## Leia também

- [Como rodar Ollama e Open WebUI com Docker em VPS GPU sem expor seus dados](https://runzos.com/como-rodar-ollama-open-webui-docker-vps-gpu/)
- [Google ADK e A2A Protocol: o que muda para agentes de IA conectados?](https://runzos.com/google-adk-a2a-protocol-agentes-ia-2026/)
- [LangGraph vs CrewAI em 2026: qual framework usar para agentes de IA?](https://runzos.com/langgraph-vs-crewai-agentes-ia-2026/)
- [OpenAI Agents SDK em VPS: vale a pena rodar agentes fora do notebook?](https://runzos.com/openai-agents-sdk-vps-2026/)