Como Executar Docker e Portainer em um VPS (Guia 2026)

Publicado: por Dallas Kashuba
Como Executar Docker e Portainer em um VPS (Guia 2026) thumbnail

Já ouviste falar de Dockerception?

Bem, segure o seu chapéu. Estamos descendo pelo buraco do coelho.

Portainer, a interface web que você está prestes a instalar em cima do Docker, é ele mesmo um container Docker.

É uma ferramenta que funciona na própria coisa que gerencia. Você a inicializa com uma linha de comando docker run, e a primeira coisa que ela faz é retroceder através de um pequeno buraco no host (um arquivo de socket) e pedir ao daemon do Docker para mostrar todos os outros contêineres, incluindo a si mesmo. A partir dessa aba do navegador, você pode atualizar o Portainer. Reiniciar o Portainer. E gerenciar todos os seus outros contêineres Docker.

A interface que você está olhando está a um clique de remover a interface que você está olhando.

Em um VPS onde você já está pagando pelo box e já está confortável com SSH, o Portainer se encaixa perfeitamente em cima do Docker sem alterar o funcionamento de nada por baixo.

Esse é o valor.

Uma caixa de 4 GB executa Docker, Portainer e uma pequena frota de aplicativos auto-hospedados sem esforço. E o custo fica em torno do valor de um par de assinaturas de streaming por mês. Suficiente para rodar a automação residencial, o armazenamento de fotos da família, o assistente de IA e o boletim informativo que você ameaçou lançar — em um servidor que você realmente possui.

Aqui está como colocá-lo para funcionar, protegê-lo e começar a ver valor.

O Que É Exatamente o Portainer?

Arquitetura Portainer mostrando o soquete Docker conectando portainer.io dentro de VPN ao navegador para gerenciamento remoto de Docker.

Portainer é uma interface de usuário web que funciona como um contêiner Docker e gerencia seus outros contêineres através do soquete Docker.

É basicamente um frontend baseado em navegador para os mesmos comandos Docker que você digitaria manualmente, além de gerenciamento de stack, acesso baseado em funções (se você atualizar) e uma visão geral do painel de controle de CPU e memória.

A conexão de socket é o que faz funcionar. A associação parece com -v /var/run/docker.sock:/var/run/docker.sock no comando de instalação, e essa única linha está fazendo todo o trabalho pesado. Sem ela, o Portainer é uma UI para um host Docker vazio. Com ela, o Portainer é o controle remoto do host Docker.

Uma coisa a ter em mente: qualquer processo que possa alcançar /var/run/docker.sock pode efetivamente executar qualquer coisa como root no host. Isso é uma característica quando é o Portainer que faz o pedido e um problema quando é algum container que você iniciou na semana passada e esqueceu que havia concedido acesso ao socket.

Trate a associação de socket como uma capacidade privilegiada e audite todos os outros contêineres que desejam uma.

Receba conteúdo diretamente na sua caixa de entrada

Inscreva-se agora para receber todas as últimas atualizações, diretamente na sua caixa de entrada.

Você Precisa de Portainer Se Já Tem Docker?

Não. Docker funciona bem a partir do terminal, e muitas pessoas executam alguns containers por anos sem nunca instalar uma interface gráfica por cima.

Você quer Portainer se:

  • Você vai manipular mais de dois ou três contêineres Docker em diferentes aplicativos.
  • Você prefere clicar em “reiniciar” do que redigitar um comando Compose às 23h.
  • Você está compartilhando acesso com alguém que não vive em um terminal.
  • Você quer implantar atualizações de pilha de um repositório Git sem escrever um script de implantação.

Pule o Portainer se:

  • Você está executando um ou dois contêineres que raramente mudam. 
  • Você já está confortável com Docker Compose e está feliz em continuar usando.

O próprio Docker é suficientemente popular para que esta não seja uma decisão marginal. De acordo com a Pesquisa de Desenvolvedores do Stack Overflow de 2025, o Docker é a plataforma de contêineres mais adotada entre os desenvolvedores, com mais de 70% de uso — o maior salto anual de qualquer tecnologia rastreada pela pesquisa. O projeto Portainer tem aproximadamente 37.000 estrelas no GitHub.

Outras opções existem. Coolify avança mais em direção a abstrações estilo PaaS, e Dokploy se situa em um território similar com uma pegada mais leve — mas Portainer é o primeiro que a maioria dos guias de instalação escolhe.

Se você vive no tmux e executa um aplicativo, feche esta aba. Você está bem. Se você está executando quatro aplicativos auto-hospedados e você procurou no Google, “O que são registros do Docker novamente?” duas vezes este mês, continue lendo.

Qual Tamanho de VPS Você Precisa Para Rodar Docker e Portainer?

Um VPS de 4 GB lida confortavelmente com o Portainer e um pequeno conjunto de containers de projetos paralelos.

Portainer recomenda um host com pelo menos 2 GB de RAM e 1 núcleo de CPU, embora o processo do Servidor Portainer fique ocioso em torno de 100 MB. O daemon Docker adiciona algumas centenas de MB de sobrecarga antes que qualquer um dos seus aplicativos comece.

Eis como isso se aplica a cargas de trabalho reais:

Tabela comparativa dos requisitos de carga de trabalho de VPS: aplicativo único precisa de 4 GB, Nextcloud precisa de 8 GB, GitLab com CI/CD precisa de 16 GB de RAM.

Na DreamHost, nosso Self-Managed VPS oferece quatro níveis de Stack baseados em RAM (Stack 4, 8, 16 e 32), sendo o nível inicial Stack 4 dimensionado exatamente para este tipo de pequeno host Docker. (E sim, armazenamento NVMe e acesso completo ao Root estão incluídos.)

Se estás indeciso sobre se a auto-hospedagem vale a pena pelo tempo, o Stack 4 é o tamanho em que as contas começam a favorecer-te desde o primeiro dia.

Uma Observação Sobre Armazenamento: A pegada de armazenamento do Portainer é mínima — ele armazena apenas seu próprio banco de dados de configuração. Os próprios documentos do Portainer recomendam desempenho de nível SSD (≈3,5 MB/s contínuos, mais de 30.000 IOPS, <10ms de latência de escrita), o que qualquer unidade NVMe moderna supera confortavelmente. O disco só se torna uma preocupação real se você estiver executando containers com uso intensivo de banco de dados como Postgres ou MySQL ao lado dele. Se seu VPS estiver em um disco giratório em 2026, a interface do usuário do Portainer parecerá lenta muito antes que a RAM. Nosso conselho: atualize o disco antes do plano.

Como Instalar Docker e Portainer em um VPS?

Formulário inicial de configuração do Portainer.io para criação de conta de administrador com nome de usuário, senha com mínimo de 12 caracteres e coleta de estatísticas opcional.

Leva seis passos e cerca de 30 minutos, a maior parte do tempo esperando pela transferência de imagens.

1. Escolha Uma Distribuição Linux

Ubuntu 22.04 ou 24.04 LTS é o caminho de menor resistência. Ubuntu é o que o VPS Auto-Gerenciado da DreamHost executa por padrão, e a maioria dos trechos de instalação do Docker e threads de ajuda da comunidade presumem isso. Debian e AlmaLinux também funcionam, no entanto.

Não tem certeza de qual versão do Ubuntu você está usando? Aprenda cinco maneiras de verificar.

2. Instale o Docker do repositório oficial

Não apt install docker.io. Isso traz uma versão mais antiga do Docker do arquivo do Ubuntu.

Em vez disso, utilize o repositório apt próprio do Docker conforme a documentação oficial de instalação do Docker, que adiciona a chave GPG do Docker, o repositório e o docker-ce mais o plugin Compose de uma só vez.

3. Verifique Se O Docker Está Em Funcionamento

Execute docker run hello-world.

Se você não receber a mensagem “Hello from Docker!”, corrija o daemon antes de adicionar o Portainer por cima.

4. Crie Um Volume Persistente Para Os Dados Do Portainer

Em seguida, execute docker volume create portainer_data.

Manter o banco de dados do Portainer em um volume Docker (não dentro do container) significa que um upgrade do Portainer não apagará sua configuração.

5. Execute a Edição Comunitária do Portainer

Use o comando oficial de instalação do documento de instalação do Portainer para Linux:

  docker run -d 
  -p 8000:8000 
  -p 9443:9443 
  --name portainer 
  --restart=always 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v portainer_data:/data 
  portainer/portainer-ce:lts

Vamos quebrar isso linha por linha:

  • -d executa-o em modo desanexado.
  • -p 9443:9443 é a interface do usuário web do Portainer em HTTPS.
  • -p 8000:8000 é o túnel do Edge Agent; só é necessário se você planeja conectar ambientes remotos (Docker, Swarm ou Kubernetes) via Edge Agents mais tarde, portanto, omita-o em uma instalação em um único host.
  • --restart=always faz com que o Portainer reinicie após um reboot.
  • -v indica as flags de ligação do socket e o volume persistente do passo 4.
  • :lts tag é o canal de suporte de longo prazo do Portainer — a compilação estável e recomendada para produção.

6. Abra a Interface e Crie Sua Conta de Administrador

Direcione seu navegador para https://YOUR_VPS_IP:9443.

Clique através do aviso de certificado autoassinado. Você chegará na tela de “criar o usuário administrador inicial”. Escolha um nome de usuário que não seja admin, defina uma senha forte e guarde-a em algum lugar seguro. E… você está dentro!

Por Que o Portainer Acabou de Expirar Para Mim?

Porque o Portainer espera exatamente cinco minutos para alguém reivindicá-lo na primeira instalação. Se ninguém o fizer, ele tranca a porta.

Literalmente do FAQ próprio da Portainer:

Como precaução de segurança, quando o Portainer é instalado pela primeira vez, ele aguardará 5 minutos para que um usuário administrador seja criado. Se um usuário não for criado dentro desses 5 minutos, o Servidor Portainer deixará de escutar as solicitações.

Tradução: se você gastou o Passo 5 fazendo um sanduíche, sua instalação agora se recusa a falar com você —e você não fez nada de errado.

A correção é simples. Execute docker restart portainer.

Isso reinicia o container, te dá mais cinco minutos de janela e te coloca na tela de criação do administrador. Repita conforme necessário. Bem-vindo à auto-hospedagem.

Se você está criando scripts de instalação para uma frota (Ansible, Terraform, um pipeline de implantação), o Portainer aceita uma flag --admin-password-file na inicialização que ignora completamente o temporizador, criando o usuário admin a partir de um arquivo na primeira execução. O documento de instalação aborda a sintaxe. Para uma instalação única em VPS, o truque de reiniciar é suficiente.

Como Você Impede Que O Docker Contorne Seu Firewall?

Comparação de firewall do Docker: sem a regra DOCKER-USER permite acesso irrestrito ao contêiner, com a regra DOCKER-USER adiciona proteção de firewall.

Isso surpreende as pessoas na produção, não apenas em desenvolvimento — então preste atenção.

Quando você docker run -p 80:80, a porta publicada fica acessível pela internet pública mesmo que ufw status mostre a porta 80 como negada. O Docker encaminha o tráfego do contêiner na tabela NAT, o que significa que os pacotes são desviados antes de chegarem às cadeias INPUT e OUTPUT que o UFW utiliza.

UFW não está quebrado. Ele apenas está no corredor errado.

A solução que o próprio Docker recomenda é a cadeia iptables DOCKER-USER, reservada para regras de administrador para que o Docker não as substitua na reinicialização. (As regras não sobrevivem a um reinício completo do host por conta própria — persista-as com iptables-persistent ou um serviço systemd; ufw-docker cuida disso para você.) A ferramenta padrão da comunidade para integrar o UFW ao DOCKER-USER é chaifeng/ufw-docker, que automatiza a geração de regras.

Instale-o, depois verifique com um escaneamento de portas de fora do seu VPS que as portas que você acha que estão fechadas estão realmente fechadas.

Eu vi isso pegar um engenheiro astuto duas vezes na mesma semana, primeiro em uma máquina pessoal, depois em uma de cliente. O UFW dizia uma coisa, a internet pública outra, e a verdade estava no iptables.

Para o Portainer especificamente, a porta 9443 é publicada, o que significa que a interface de administração está acessível de qualquer lugar na internet pública assim que o contêiner é iniciado. Duas rotas razoáveis: restringir 9443 através de regras DOCKER-USER (permitir apenas o seu IP de casa ou escritório), ou usar um túnel VPN como WireGuard para que a interface nunca tenha um IP público.

O Que Você Deve Bloquear Logo Após o Primeiro Login?

Você está dentro. Cinco coisas que valem a pena fazer antes de fechar essa aba do navegador, conforme o guia de segurança da Portainer:

  • Forçar Apenas HTTPS. Portainer vem com HTTPS na porta 9443 por padrão, mas não o impõe. Mude a opção em Configurações para que a interface recuse completamente o HTTP.
  • Substitua o certificado autoassinado. Faça o upload de um certificado que você gerou, ou use o Portainer com um proxy reverso NGINX que possui um certificado Let’s Encrypt. Depois do primeiro dia, clicar no aviso do navegador todas as vezes é um hábito que você vai se arrepender.
  • Use um nome de usuário admin real. “Admin” é o primeiro palpite em qualquer tentativa de inserção de credenciais. Escolha algo específico para você.
  • Restrinja a interface a uma VPN. WireGuard é o padrão recomendado pelo Portainer. Um 9443 público com credenciais fortes está bom. Um 9443 que só pode ser alcançado em uma rede privada é melhor.
  • Audit o vínculo do socket Docker. Qualquer coisa com acesso de leitura a /var/run/docker.sock pode executar qualquer coisa como root no host. Não monte o socket casualmente em outros contêineres. Cada vínculo adicional é um novo caminho para o host. Se um contêiner afirma que precisa do socket, pergunte por que — e considere um proxy de socket se a resposta for “para monitoramento”.

Como Usas o Portainer no Dia-a-Dia?

A recompensa por instalar o Portainer é o dia em que você para de usar SSH para reiniciar um contêiner problemático e começa a clicar em um botão em vez disso. A maior recompensa é a gestão de pilhas.

Uma stack Portainer é um aplicativo de múltiplos contêineres definido por um arquivo Docker Compose. Tudo o que você pode expressar como um docker-compose.yml você pode implantar como uma stack, com três principais rotas (excluindo modelos personalizados) conforme a documentação oficial das stacks:

  • Cole o Compose na interface do usuário
  • Carregue um arquivo Compose
  • Ajuste o Portainer para um repositório Git
Painel do Portainer.io mostrando Detalhes do Stack com tabela de containers, registros, estatísticas e controles de gerenciamento para containers Docker.

O caminho do Git é o que importa. Você direciona o Portainer para um repositório público ou autenticado e um caminho para docker-compose.yml. O Portainer ou verifica o repositório em um cronograma (o padrão é de cinco minutos) ou espera por um webhook do GitHub. Quando o arquivo Compose é alterado no repositório principal, o Portainer faz o pull e redespliega automaticamente.

Essa é a versão auto-hospedada de “implantação ao realizar um push” sem pagar por um PaaS pelo privilégio.

As pequenas vitórias diárias também se somam. Pense em registros em um painel em vez de docker logs -f, reinicializações com um clique, reconstrução de um stack a partir de um botão e gráficos de recursos que você pode analisar em três segundos em vez de executar Docker stats.

O Portainer também suporta hosts Docker remotos por meio de seu Edge Agent, que é como um assistente de IA auto-hospedado ou servidor de mídia se distribui por várias caixas.

Qual É O Custo Do Portainer? (E Quando O Gratuito Deixa De Ser Gratuito?)

A Edição Comunitária Portainer é gratuita e ilimitada, ponto final. A instalação pela qual você acabou de passar é totalmente funcional para um nome de host com tantos contêineres quanto o seu VPS pode comportar. Sem limite de nós, sem expiração, sem telas de lembretes.

EdiçãoCustoNósMelhor para
Edição ComunitáriaGratuito, código abertoIlimitadoProjetos pessoais, homelab, hospedagem própria em VPS único
Edição de Negócios (Take 3)Gratuita perpetuamenteAté 3Pequenos homelabs que desejam RBAC e registros de auditoria
Negócios InicianteA partir de $99/mês5, 10, ou 15Pequenas equipes gerenciando infraestrutura real
Negócios EscalaA partir de $199/mêsAté 25Equipes em crescimento que precisam de suporte 9×5
EmpresarialCotaçãoIlimitadoConformidade e necessidades 24/7

O nível perpétuo gratuito de três nós (chamado Take 3) vale a pena conhecer: você renova a licença anualmente sem custo, desde que permaneça com três nós ou menos.

Esse é o plano certo para a maioria dos homelabs e pequenas equipes que desejam controle de acesso baseado em funções (RBAC), registros de auditoria e registro de atividades sem custos. Acima disso, o Business Starter é de $99/mês na página de preços de negócios da Portainer para 5/10/15 nós; Scale é $199/mês até 25 nós; e Enterprise é sob consulta.

Para quase todos que estão lendo isso, a melhor escolha é a Edição Comunitária. Ela servirá a um hospedeiro self-host de VPS único pela vida útil da caixa. As edições Business só justificam seu custo quando você está gerenciando contagens reais de nós, precisa de RBAC em uma equipe ou requer suporte comercial para conformidade.

Deve Adicionar Portainer ou Ignorá-lo?

Aqui está a resposta honesta de duas frases:

✅ Se vais compartilhar este servidor, implantar a partir do Git ou executar mais de três containers daqui a um ano, instala o Portainer enquanto o host está fresco e os teus hábitos ainda estão se formando em torno dele.

❌ Se estás a executar uma aplicação silenciosa e estás feliz no terminal, não sentirás falta da interface do usuário que não instalaste.

A verdadeira questão não é Portainer versus não Portainer. É se a auto-hospedagem é a escolha certa para você — e você respondeu isso ao abrir esta aba.

Um VPS de 4 GB, Docker e Portainer CE levam você mais longe do que a maioria das pessoas espera — uma pilha de automação, um servidor de fotos, uma plataforma de newsletter e um assistente de IA local — por menos do que você provavelmente paga por dois serviços de streaming que mal assiste.

Essa não é uma má oferta para uma caixa que você realmente possui.

Perguntas Frequentes Sobre Docker e Portainer

Para que serve o Portainer?

Portainer é usado para gerenciar containers Docker, Docker Swarm e Kubernetes através de uma interface web. Ele funciona como um container Docker, conecta-se ao socket Docker do host e oferece uma visualização no navegador e superfície de controle sobre todos os outros containers no host — iniciando e parando containers, implantando pilhas de múltiplos containers, visualizando registros e gerenciando o acesso do usuário sem a necessidade de acessar via SSH.

Preciso de Portainer Se Eu Tiver Docker?

Não, você não precisa do Portainer para usar o Docker. O Docker funciona completamente a partir do terminal, e muitos auto-hospedeiros nunca instalam uma interface de usuário por cima.

Portainer justifica seu uso quando você está lidando com mais de dois ou três containers, compartilhando acesso com alguém que não vive em um terminal, ou implementando atualizações de stack a partir de um repositório Git. Ignore-o se você estiver executando um ou dois containers estáveis e estiver confortável com Docker Compose.

Em Que Porta O Portainer Funciona?

O Portainer é executado na porta 9443 por padrão para acesso HTTPS à interface do usuário web, além da porta 8000 para o túnel do Edge Agent se você conectar hosts Docker remotos mais tarde. A porta 8000 é opcional em uma instalação de host único; você pode remover a bandeira -p 8000:8000 do comando de instalação sem afetar a interface do usuário local. Os padrões vêm diretamente do documento de instalação oficial do Linux do Portainer.

Quanta RAM o Portainer precisa?

O próprio Portainer ocupa cerca de 100 MB quando inativo, antes de carregar qualquer outra coisa. Adicione alguns cem MB para o daemon do Docker e, em seguida, dimensione a partir daí com base no que você está realmente executando.

Na DreamHost, dimensionamos nosso VPS Auto-Gerenciado de nível inicial em 4 GB de RAM exatamente para este tipo de carga de trabalho — espaço suficiente para o Portainer mais uma pequena pilha de containers de projetos paralelos como Ghost, n8n, uma base de dados Postgres e um proxy reverso.

O Portainer é gratuito?

Sim. A Edição Comunitária do Portainer é totalmente gratuita, e a Edição Business também possui um nível gratuito perpétuo de 3 nós chamado Take 3, que se renova anualmente sem custo, desde que você permaneça com três nós ou menos. Acima de três nós, o preço para negócios começa em $99/mês no plano Starter por página de preços de negócios do Portainer.

Qual é a diferença entre o Portainer CE e a Edição Business?

Portainer Community Edition é gratuito, open-source e completamente funcional para uso pessoal.

Edição Business adiciona controle de acesso baseado em funções, registros de auditoria, registro de atividades, suporte comercial e começa a partir de $99/mês para 5 nós após o nível perpétuo gratuito de 3 nós Take 3.

O Portainer pode gerenciar vários hosts Docker?

Sim, o Portainer pode gerenciar vários hosts Docker através de Edge Agents, que funcionam em cada host remoto e consultam o servidor central do Portainer na porta da UI, usando a porta 8000 para abrir um túnel seguro de volta para comandos de gerenciamento. Para auto-hospedeiros de VPS único, isso é exagero. Para quem gerencia três ou mais caixas que compartilham um plano de controle, é por isso que 8000 está na linha de instalação.

O Docker contorna o UFW em um VPS?

Sim, o Docker contorna o UFW por padrão porque o Docker gerencia o tráfego de contêineres na camada NAT do iptables, que fica à frente das cadeias INPUT e OUTPUT do UFW.

De acordo com a documentação de filtragem de pacotes do Docker, “Os pacotes são desviados antes de alcançarem as cadeias INPUT e OUTPUT que o UFW utiliza.” A solução é a cadeia iptables DOCKER-USER, e a ferramenta padrão da comunidade para integrar o UFW a ela é chaifeng/ufw-docker.

Self-Managed VPS

Assuma o controlo de toda a sua stack. Aplicações, IA, bases de dados e muito mais.

Mantenha todas as credenciais e conversas num servidor que controla, com velocidade NVMe e largura de banda ilimitada incluídas.

Explore os planos de VPS autogerido