O Portainer é uma interface de usuário gráfica (GUI) para gerenciar containers Docker de forma simplificada. Ele facilita a administração de seus containers, volumes e imagens. Neste tutorial, vamos mostrar como instalar o Portainer e usar o Nginx Proxy Manager para gerenciar proxies reversos e certificados SSL para o Portainer.
Requisitos
- Servidor rodando Linux com Docker e Docker Compose instalados
- Acesso root ou um usuário com privilégios sudo
Passo 1: Instalar o Docker e Docker Compose
Se ainda não tiver o Docker e o Docker Compose instalados, siga estas etapas para instalar. Para instalar o Docker, execute os seguintes comandos:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
Para instalar o Docker Compose, use:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Passo 2: Instalar o Portainer
O Portainer pode ser facilmente instalado usando o Docker. Crie um container para o Portainer com o seguinte comando:
docker volume create portainer_data
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
Isso criará e iniciará um container Portainer na porta 9000 para a interface da web e na porta 8000 para a API do Portainer.
Passo 3: Acessar o Portainer
Depois de iniciar o container, você pode acessar o Portainer através do navegador. Abra o navegador e insira o IP do seu servidor seguido da porta 9000:
http://seu-ip-servidor:9000
No primeiro acesso, você será solicitado a configurar uma senha de administrador. Após isso, você terá acesso ao painel do Portainer, onde poderá gerenciar seus containers, volumes e redes Docker de forma gráfica.
Passo 4: Instalar o Nginx Proxy Manager
Agora, vamos configurar o Nginx Proxy Manager para gerenciar proxies reversos e facilitar o acesso ao Portainer por um domínio amigável e seguro com SSL. Crie um arquivo Docker Compose para configurar o Nginx Proxy Manager:
mkdir ~/nginx-proxy-manager
cd ~/nginx-proxy-manager
nano docker-compose.yml
Adicione o seguinte conteúdo ao arquivo docker-compose.yml:
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm_password"
DB_MYSQL_NAME: "npm"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
db:
image: 'jc21/mariadb-aria:latest'
environment:
MYSQL_ROOT_PASSWORD: 'root_password'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm_password'
volumes:
- ./data/mysql:/var/lib/mysql
Substitua as senhas conforme necessário. Salve o arquivo e inicie o Nginx Proxy Manager com:
sudo docker-compose up -d
Passo 5: Acessar o Nginx Proxy Manager
Depois que o Nginx Proxy Manager estiver em execução, você poderá acessá-lo na porta 81 para configuração administrativa. Use o navegador para acessar o painel de gerenciamento:
http://seu-ip-servidor:81
Faça login com o usuário [email protected] e senha changeme, e defina suas novas credenciais de administrador.
Passo 6: Configurar o Proxy Reverso para o Portainer
No painel do Nginx Proxy Manager, vá para “Hosts” > “Proxy Hosts” e clique em “Add Proxy Host”. Insira o domínio ou subdomínio que você deseja usar para acessar o Portainer. Em seguida, insira o IP e a porta do Portainer (9000) no campo “Forward Hostname / IP”.
Ative a opção “Websockets Support” e clique em “Save”. Agora você poderá acessar o Portainer através do domínio configurado.
Passo 7: Configurar Certificados SSL com Let’s Encrypt
Para proteger o acesso ao Portainer com SSL, vá novamente para o proxy host que você criou, clique em “Edit”, e na aba “SSL”, selecione a opção “Request a new SSL Certificate” com Let’s Encrypt. Insira seu e-mail e ative a opção “Force SSL”.
O Nginx Proxy Manager irá automaticamente obter e instalar um certificado SSL válido para seu domínio. Agora você poderá acessar o Portainer de forma segura através de HTTPS.
Servidor VPS
Se precisar de um servidor VPS confiável para hospedar seu Docker com Portainer e Nginx Proxy Manager, veja as opções disponíveis aqui.