Introdução

Durante todo o dia executamos várias tarefas através de comandos em nosso terminal, correto? Contar com uma UI funcional pode facilitar bastante a nossa rotina, principalmente quando queremos compartilhar com outros colegas que não estão familiarizados com os comandos no terminal.

Depois de algumas pesquisas, e muitos testes, encontrei o poderoso portainer.io, que fornece uma UI muito boa e, o mais legal disso tudo, com um código aberto para todos.

Com o portainer.io podemos facilmente extrair imagens, adicionar contêineres, adicionar redes, etc. Esta ferramenta, na minha humilde opinião, é realmente incrível e deve ser uma opção por todos os profissionais que administram sistema em Docker.

Então vamos dar uma olhada como tudo isso funciona?

Pré-requisitos

  • Nosso teste foi realizado no CentOS 7
  • Os comandos e instruções podem variar ligeiramente em outras versões do CentOS 7 e distribuições do Linux.

Etapa 1 - Primeiro passo

Acesse o site portainer.io e em seguida na opção de instalação.

Site do Portainer.io

Vamos ao código!

Crie um volume para o Portainer com o seguinte comando:

$

docker volume create portainer_data

Depois que o volume já foi criado rode o comando abaixo em seu terminal:

$

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

$

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

Vamos usar a versão mais recente do portainer.io que é a 2.0, o comando acima é do Docker eu estou considerando que você já tem experiencia com os comandos básicos.

Comandos básicos do Dorker:

systemctl start/stop docker     #start/stop docker service
systemctl enable docker         #enable docker running when OS start
docker pull                     #pull Docker image
docker ps                       #list all running Containers 
docker ps -a                    #list all Containers
docker start/stop CONTAINER ID  #start/stop Container            
docker rm CONTAINER ID          #delete Container by ID
docker kill CONTAINER ID        #shut down Container
docker images                   #list all images have been downloaded

Etapa 2 - Verificar se o portainer.io está rodando no Docker

Pronto seu portainer.io já está instalado e rodando em sua porta padrão que é a SERVER_IP:9000 como pode ver em nossa imagem.

portainer

O portainer.io conta com diversos serviços que podem nos ajudar em nosso dia a dia como:

Mas não terminamos por aqui! Vou mostrar algumas funções dentro do painel, se seu Docker tiver funcionando tudo corretamente acesse a UI digitando o seguinte em seu navegador.

SERVER_IP:9000

Obs. SERVER_IP é o endereço do servidor Docker

Primeiro passo vai ser as configurações básicas que, em geral, é rápida, você vai ter que definir uma senha de administrador e o ambiente que deseja controlar, escolha o ambiente local.

Etapa 3 - Acessando o painel

Depois de realizar as configurações iniciais, você vai visualizar a seguinte imagem em seu navegador:

Imagem portainer

Na tela inicial do Portainer, vai aparecer todos os Endpoints (ambientes) configurados. Em minha configuração vou ter dois, um correspondente ao ambiente local e um outro ambiente que está conectado na nuvem da LetsCloud.

Portainer 9

No seu caso selecione o Endpoint local para visualizar as opções do seu portainer.io.

Portainer 9

Em meu Dadhboard inicial consigo ver minhas stacks, containers, volumes, services, images e networks. Nesse post vamos focar nos containers e como conectar em um segundo ambientes (Endpoints).

Etapa 4 - Baixando e configurando imagem Docker em seu Portainer

Em nosso primeiro exemplo vamos usar a instalação do WordPress, onde vamos fazer o setup inicial via dadhboard em nosso portainer.io.

Depois que selecionarmos a opção containers vamos ver a seguinte tela:

Porteiner 4

Em seguida o portainer.io vai apresentar a seguinte tela:

Portainer 5

Nome (Name): defina o nome do seu container Imagem (Imagem): nome da imagem no DockerHub Configuração das portas de rede (Network ports configuration). Sugiro que habilite a opção Publish all exposed network ports e depois defina a porta 80 manualmente, conforme imagem acima.

Etapa 5 - Fazendo o Deploy

Clique em Deploy the container para iniciar o download da imagem e em seguida o start do seu container automaticamente.

Portainer 6

Se tudo funcionar conforme o esperado, você vai ver o container do WordPress rodando na porta 80. Use seu navegador para visualizar a pagina de Boas-vindas do WordPress.

SERVER_IP:80

Etapa 6 - Endpoints

Chegamos na segunda e ultima parte do nosso post, mas não pare por aqui o portainer.io tem muitas funções a serem exploradas!

Portainer 7

Depois que você selecionar a opção endpoints vamos ter algumas opções como:

Agent - Portainer agent Edge Agent - Portainer Edge agent Docker - Directly connect to the Docker API Azure - Connect to Microsoft Azure ACI

Em nosso tutorial vamos usar somente o Agent e para isso preciamos rodar o agente em nosso segundo docker que está em nossa nuvem na LetsCloud.

Etapa 7 - Instalando o Agent

$

curl -L https://downloads.portainer.io/agent-stack.yml -o agent-stack.yml && docker stack deploy --compose-file=agent-stack.yml portainer-agent

Obs. Só para relembrar você deve ter o Docker funcionando no destino!

Pronto! Se tudo ocorrer como esperado o agente vai aparecer como running em seu docker.

Portainer 8

Para testar o funcionamento da sua nova maquina, vá até à tela inicial de seu portainer.io.

Portainer 9

Acesse a maquina de você acabou de se conectar e repita a nossa instalação do WordPress na segunda maquina.

E aí, gostou do conteúdo? Você não pode deixar de saber como atualizar o WordPress, pois as atualizações são parte importante da segurança do sistema, melhoram o desempenho e trazem novas funcionalidades. Além disso, atualizar seu site exige somente alguns cliques. É simples, rápido e essencial!

Última dica: Antes de iniciar um projeto em produção com o portainer.io, pesquise as limitações de sua UI e se ela realmente vai atender todas as suas necessidades no decorrer do projeto.

Um lugar muito bom para pesquisar é o fórum oficial (em inglês), a ferramenta conta também com Blog (em inglês), canal no YouTube (em inglês), Discord (em inglês) e uma super documentação (em inglês).

Conclusão

Depois de começar a usar o portainer.io em seu dia a dia, você não vai querer voltar para a interface de linha de comando do Docker novamente. A facilidade é tanta que até os mais experientes estão usando diariamente em seus projetos.

Referências

Portainer
Deployment
fórum oficial
Blog
documentação