Como instalar Portainer para gerenciamento Docker com Nginx Proxy Manager no Ubuntu

Portainer Docker

O Portainer é uma solução de gerenciamento de contêineres de código aberto para Docker, Kubernetes e Nomad que simplifica iniciar, criar e executar contêineres de maneira fácil. Portainer fornece um painel de controle baseado na Web para gerenciar contêineres, imagens, redes e volumes. Inclui ainda uma seleção de templates(apps)

Neste tutorial, vamos instalar e configurar o Portainer em um servidor Linux com Ubuntu 20.04 LTS e usá-la para criar e gerenciar contêineres Docker para executar diferentes aplicativos. Vamos ainda aprender a colocar o portainer atrás do gerenciador de proxy reverso Nginx proxy.

1- Configure o Firewall

Verifique se o Firewall está ativo e habilite se necessário.

Abra as portas 80, 443, 9443, 81, 22

reload no firewall

2- Instalação do Docker

Habilite o serviço do Docker

3 – Instale o Docker Compose

Aplique permissão executável ao binário

3 – Instalação do Portainer

Crie um diretório para o portainer e acesse a seguir

Crie o arquivo abaixo para o docker-compose

Cole o código abaixo no arquivo

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Inicie o portainer

4 – Acesse e configure Portainer

Abra a URL https://<ipdoseuservidor>:9443

Você verá a seguinte tela abaixo. Crie o usuário admin , senha e clique “Create User”

Você será direcionado a tela abaixo. Clique no menu Home

Em Home você verá “local” no qual o Portainer está sendo executado. Clique em local para começar.

A maioria das seções são autoexplicativas. A Stacks ajuda na criação de contêineres usando arquivos de composição do Docker. Você pode implantar contêineres diretamente usando a Contêineres na barra lateral. Você pode configurar o ambiente do docker atual por meio da Hosts . App Templates vem com arquivos de composição do Docker pré-instalados para instalar os aplicativos mais comuns. Você também pode criar modelos personalizados ou utilizar uma lista de Templates externos como por exemplo Templates App .

A seção Configurações(Settings) permite definir várias configurações, como adicionar registros personalizados do Docker, adicionar vários hosts para o Docker swarm, configurar o acesso do usuário, fazer backup de dados , personalizar o Portainer, Adicionar nova lista de Templates.

5 – Portainer atrás de um proxy reverso utilizando Nginx Proxy Manager

Precisaremos de um subdomínio apontando para o IP do servidor. Ex portainer.dominio.xx .O Nginx Proxy Manager é um aplicativo Docker que fornece uma interface do usuário de gerenciamento da Web para configurar o Nginx como um host de proxy reverso. Ele também pode ser usado como um redirecionamento ou um host de streaming.

Instalar NPM
A primeira etapa é criar uma rede para o Nginx Proxy Manager (NPM). Abra a Networks e clique no botão Add Network para criar uma nova rede. Dê um nome, mantenha os outros campos sem alteração.

Clique em Create the Network

Clique em Stacks e crie uma nova Stack utilizando Add Stack botão com nome nginx-proxy-manager. Em Web Editor cole o código abaixo:

Vamos adicionar 2 variáveis neste Stack, uma para usuário mysql e outra para root mysql. Role a página e clique no botão “Add an environment variable” 2 vezes.
O primeiro campo preencha com DB_MYSQL_PASSWORD e a frente em value , defina uma senha segura.
O segundo campo preencha com MYSQL_ROOT_PASSWORD e a frente em value, defina uma senha segura.

Clique em Deploy the stack para criar e iniciar NPM Container.

Acesse a URL http://<ipdoservidor>:81
Usuário: admin@example.com
Senha: changeme

Após o login altere seu usuário e senha para sua segurança.

No Nginx Proxy Manager

Visite Host >> Proxy Hosts e clique no botão Add Proxy Host .
Neste ponto iremos utilizar o subdomínio apontando para o ip do servidor.

Digite o nome de domínio como portainer.seudominio.com.
Escolha o esquema como https.
Digite o nome do contêiner como o host de encaminhamento e 9443 como a porta de encaminhamento . Habilite as opções Block Common Exploits e Websockets Support.
Alterne para a aba SSL

Em SSL Certificate altere para “Request a new SSL Certificate”.
Habilite Force SSL e HTTP/2 Support. Em e-mail informe seu e-mail .
Para finalizar habilite I Agree to the Let´s Encrypt Terms of Service.
Clique em Save

Configuramos o host Proxy, mas o contêiner ainda não está conectado à rede NPM.
Volte para o painel do Portainer, visite a Containers e selecione o Portainer .

Localize a opção Connected networks e a frente de Join a network selecione npm-network. Clique no botão Join Network

Neste ponto você conseguirá acessar o portainer com https://portainer.seudominio.com

Portainer possui muitos outros recursos que facilitam o trabalho com Docker, Kubernetes , Nomad com bastante documentação . Espero que tenha gostado desta iniciação.