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:
- Lissy93/portainer-templates
- technorabilia/portainer-templates/
- TheLustriVA/portainer-templates-Nov-2022-collection
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.