Aprenda a instalar Portainer CE no Docker com segurança, acessar por túnel SSH ou VPN, implantar stacks e atualizar o painel sem perder dados.

Para que serve

Neste artigo você vai instalar Portainer no seu servidor. O Portainer CE (Community Edition, gratuito) é uma interface web para administrar o Docker: ver containers, logs e consumo, abrir um console, gerenciar volumes, redes e imagens e implantar projetos Compose (que ele chama de stacks). É útil para equipes que não vivem no terminal e para ter uma visão rápida de vários hosts Docker em um só lugar.

O Portainer não substitui o conhecimento de Docker: por trás de cada botão estão os mesmos comandos. E, como ele controla o socket do Docker, quem acessa o Portainer tem controle total do servidor. Proteja-o bem.

Pré-requisitos

Passo a passo para instalar Portainer

  1. Crie o volume de dados:
    docker volume create portainer_data
  2. Suba o Portainer. A forma mais segura é publicar a interface apenas no localhost e acessá-la por VPN ou túnel SSH:
    docker run -d --name portainer --restart=always \
      -p 127.0.0.1:9443:9443 \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v portainer_data:/data \
      portainer/portainer-ce:lts
    A porta 9443 é a interface HTTPS (com certificado autoassinado). A porta 8000 só é necessária para o recurso Edge Agent; se não usa, não publique. A tag lts segue a versão de suporte longo, mais indicada para produção.
  3. Acesse a interface. Se publicou no localhost, abra um túnel a partir do seu computador:
    ssh -L 9443:127.0.0.1:9443 usuario@IP_DO_SERVIDOR
    e acesse https://localhost:9443. Se está numa VPN (WireGuard, por exemplo), você pode publicar no IP da VPN em vez do 127.0.0.1.
  4. Informe o token de configuração. Versões recentes do Portainer pedem um setup token no primeiro acesso, para que ninguém "tome posse" de uma instalação nova antes de você. Pegue-o nos logs:
    docker logs portainer 2>&1 | grep setup_token
  5. Crie o usuário administrador com senha forte (mínimo de 12 caracteres). Se você demorar demais para concluir essa etapa, o Portainer se bloqueia por segurança; basta rodar docker restart portainer e recomeçar.
  6. Na tela inicial, clique em Get Started para usar o ambiente local (o próprio Docker do servidor).

Implantando um projeto (stack)

  1. Vá em Stacks → Add stack, dê um nome e cole o conteúdo do seu compose.yaml no editor (ou aponte um repositório Git).
  2. Defina variáveis de ambiente na seção Environment variables em vez de escrever senhas no YAML.
  3. Clique em Deploy the stack. Para atualizar depois, edite a stack, marque Re-pull image and redeploy e confirme.

Atenção: stacks criadas pelo Portainer ficam guardadas no volume dele. Se você também gerencia projetos pelo terminal com docker compose, o Portainer mostra esses projetos como "limitados" (pode parar e iniciar, mas não editar o YAML). Escolha uma das formas para cada projeto.

Gerenciando outros servidores

Para controlar o Docker de outra VM ou servidor pelo mesmo painel, instale o Portainer Agent no destino e adicione-o em Environments → Add environment → Docker Standalone → Agent. O agent escuta na porta 9001; libere essa porta somente para o IP do servidor onde roda o Portainer, nunca para a internet.

Atualizando o Portainer

O container não se atualiza sozinho. Faça backup antes (em Settings → Backup Portainer) e então:

docker stop portainer
docker rm portainer
docker pull portainer/portainer-ce:lts
docker run -d --name portainer --restart=always \
  -p 127.0.0.1:9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:lts

Os dados ficam no volume portainer_data e são preservados.

Como saber se funcionou

  • docker ps --filter name=portainer mostra o container como Up e a porta 127.0.0.1:9443.
  • No painel, o ambiente local aparece como Up com a contagem correta de containers.
  • De fora, sem VPN/túnel, https://IP_DO_SERVIDOR:9443 não deve abrir.

Problemas comuns

  • "Your Portainer instance timed out for security purposes": você não criou o admin a tempo. Rode docker restart portainer.
  • Esqueci a senha do admin: o projeto oferece uma ferramenta de redefinição (portainer/helper-reset-password); pare o Portainer antes de usá-la e siga a documentação oficial.
  • Aviso de certificado no navegador: esperado com o certificado autoassinado. Para certificado válido, coloque o Portainer atrás de um proxy reverso com Let's Encrypt ou envie seu certificado em Settings → SSL certificate.
  • Painel aberto para a internet: se você publicou com -p 9443:9443, o UFW não protege. Recrie o container com 127.0.0.1: ou aplique as regras do artigo de firewall.

Perguntas frequentes

O Portainer é gratuito?

A edição Community (CE) é gratuita e open source e atende bem a um ou poucos servidores. A Business Edition é paga e traz recursos extras, como controle de acesso mais detalhado.

Qual a porta padrão do Portainer?

A interface HTTPS usa a 9443. A 8000 só serve para o Edge Agent e a 9001 para o Portainer Agent em outros hosts. Nenhuma delas deve ficar aberta para a internet.

É seguro deixar o Portainer exposto na internet?

Não é recomendado. Quem entra no Portainer controla o socket do Docker e, na prática, o servidor inteiro. Publique só no localhost e acesse por túnel SSH ou VPN. Veja também o artigo «Como liberar o acesso ao Proxmox (porta 8006), SSH e RDP só pela VPN».

Como colocar um certificado válido no Portainer?

Coloque-o atrás de um proxy reverso com Let's Encrypt ou envie o certificado em Settings → SSL certificate. Veja também o artigo «Como configurar proxy reverso com Nginx ou Caddy: vários sites e VMs em um único IP».

Leitura complementar

Precisa de ajuda? Abra um ticket ou fale com o suporte pelo WhatsApp.

Esta resposta lhe foi útil? 0 Usuários acharam útil (0 Votos)

Leia também