Portainer: gerenciar stacks Docker pela interface web

Portainer é uma interface web para gerenciar Docker que permite criar e atualizar stacks (docker-compose.yml) via browser, sem SSH. Uma Stack no Portainer é um docker-compose.yml executado pelo Portainer, você cola o conteúdo na interface ou aponta para um repositório Git. O Portainer também mostra logs, stats de CPU/memória e permite abrir shell nos containers diretamente no browser.

Criar uma stack no Portainer

Stacks no Portainer são criadas via menu Stacks → Add stack. Três métodos disponíveis:

Variáveis de ambiente em stacks Portainer

No Portainer, você pode definir variáveis de ambiente na aba "Environment variables" ao criar a stack, equivale ao arquivo .env:

yaml
# No docker-compose.yml da stack, use variáveis normalmente:
services:
  app:
    image: minha-app:latest
    environment:
      - DATABASE_URL=${DATABASE_URL}
      - SECRET_KEY=${SECRET_KEY}

# No Portainer (aba "Environment variables"):
# DATABASE_URL = postgres://user:senha@db:5432/mydb
# SECRET_KEY   = chave_secreta_aqui

# As variáveis ficam salvas no Portainer e não precisam ser
# re-inseridas a cada redeploy

Atualizar uma stack (redeploy)

Para atualizar uma stack existente no Portainer:

Monitorar containers via Portainer

O Portainer oferece visibilidade em tempo real de todos os containers:

Portainer CE vs Business

O Portainer tem duas versões: Community Edition (grátis, código aberto) e Business (pago):

Não quer configurar manualmente?

Implante o Portainer em menos de 5 minutos com a Runstack. Infraestrutura da OPEN Datacenter, com servidores em São Paulo.

Perguntas frequentes

Portainer é focado em gerenciamento de containers/stacks existentes, ideal se você já usa Docker Compose e quer visibilidade via UI. Coolify é uma PaaS completa com deploy de apps via Git, SSL automático e marketplace de apps. Para times que querem mais automação no deploy, Coolify. Para operação de infraestrutura já dockerizada, Portainer.

Sim. O Portainer gerencia o Docker daemon, você o instala manualmente (ou via stack) e depois usa a interface para criar as demais stacks. A stack do próprio Portainer é gerenciada diretamente via Docker CLI.

Faça backup do volume portainer_data com: docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine tar czf /backup/portainer-backup.tar.gz /data. Ele contém todas as stacks, variáveis de ambiente, usuários e configurações.

Sim, via Portainer Agent. Instale o portainer-agent no servidor remoto e adicione o endpoint no Portainer principal. Com isso, uma instância do Portainer gerencia múltiplos servidores Docker.

Não interfere com operação, mas stacks criadas fora do Portainer aparecem como "orphaned" (não gerenciadas). Você pode importá-las clicando em "Add stack" → "Compose" → apontar para o stack existente. Depois elas aparecem no Portainer normalmente.