Desenvolvimento, HomeLab

Portainer – Dashboard de gerenciamento para Docker e Kubernetes Simples e rápido

Quer uma alternativa para o CLI do Docker? E do Kubectl? Com o Portainer, você consegue gerenciar desde a sua instância local com o Docker Standalone, passando pelo Docker Swarm e chegando a clusters Kubernetes. Gostou da ideia? Neste artigo, vamos mostrar como instalar e os principais pontos de atenção.

Pré-Requisitos

É importante que, para seguir este tutorial, você tenha pelo menos o Docker na máquina em que for instalar o Portainer. Fizemos alguns testes também com o Podman e, a princípio, tivemos o mesmo resultado. Também recomendamos a leitura de: Uma visão abrangente sobre Contêineres

O que é o Portainer?

O Portainer oferece uma interface baseada na web que simplifica tarefas comuns relacionadas à administração de contêineres, como a criação, gerenciamento e monitoramento de contêineres Docker. Ele suporta várias plataformas, tornando-o útil para desenvolvedores e administradores de sistemas que lidam com contêineres em ambientes variados.

Como instalar?

A parte de instalação é bem simples e compatível com MacOS, Linux em geral e Windows com WSL. Em nosso tutorial, vamos focar na versão Docker Standalone local. No entanto, caso queira ver para outro ambiente ou combinação, recomendamos a documentação.

No terminal, vamos iniciar criando um volume:

docker volume create portainer_data

Em seguida, vamos criar o container que roda o Portainer. Antes disso, é preciso indicar alguns pontos de atenção. Por padrão, sua instalação libera duas portas: 8000 e 9443, sendo esta última a porta web com SSL. No entanto, para muitos usuários em desenvolvimento, adicionar a porta 9000 é uma opção válida, visto que não há certificado sob localhost.

Outro ponto é referente a como você roda o Docker ou Podman. Por padrão, o Docker roda via /var/run/docker.sock. Para Podman, você pode usar o comando abaixo para localizar:

podman machine inspect --format '{{ .ConnectionInfo.PodmanSocket.Path }}'

Com isso, chegamos a este comando:

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

Explicando brevemente os comandos acima, teremos:

  • docker run: usado para criar uma nova instância.
  • -d: usado para rodar o container em segundo plano.
  • -p: define as portas que seu PC terá conexão com o Container no modelo Host:Container.
  • –name: indica o nome único que seu container terá.
  • –restart: define a política de restart, determina se seu container deve iniciar caso sua máquina/container seja reiniciada.
  • -v: semelhante ao -p, mas para volumes. Neste caso, estamos indicando o caminho do sock do Docker.

Se tudo der certo até este ponto, você já poderá acessar o Portainer via https://localhost:9443 ou http://localhost:9000. Além disso, verá o Portainer rodando como na imagem abaixo:

O que é App Templates?

App Templates é a forma que o Portainer possibilita que você tenha uma “Loja de Apps” para criação de containers de vários tipos, desde a instalação do SQL Server até o Gitlab CE. No entanto, essa loja é flexível o suficiente para permitir que você altere sua fonte. Para isso, você pode ir em http://localhost:9000/#!/settings e alterar a URL para qualquer uma. Aqui listamos alguns repositórios populares:

Além da loja de Apps, você também pode criar seus Custom Templates, que são basicamente um Docker Compose que pode ser feito localmente usando o editor online, fazendo upload do arquivo ou ainda usando um repositório Git para baixar o projeto.

Outras Funcionalidades interessantes

Além das já listadas acima, com ele é possível gerir mais de um node observando a questão de licença, gerir usuários e formas de autenticação que permite: Local, LDAP, Microsoft AD e OAuth. Também é possível criar times e usuários, funcionalidade muito interessante para permitir que determinados times só consigam ver determinados containers. Indo para um lado mais de execução, podemos gerir networks, volumes e imagens. Também é possível fazer várias coisas com um container em execução, por exemplo: ver logs, consumo de memória RAM, CPU, network e IO, rodar o modo interativo (rodar comandos dentro do container) e inspecionar.

Conclusão

Já conhecia essa ferramenta? Usa no seu homelab ou empresa? Conhece outras ferramentas mais interessantes? Fique à vontade para compartilhar sua opinião; com isso, nossa comunidade só tem a ganhar, e poderemos fazer mais artigos de outras ferramentas caso tenham interesse.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.