Portainer com Docker Swarm
Como Instalar o Portainer com Docker Swarm – Passo a Passo para Iniciantes Se você quer aprender a configurar o Portainer em um ambiente Docker Swarm, esta aula é perfeita para você!
Vou te guiar por cada etapa, desde a criação do cluster até o gerenciamento de containers, de forma simples e clara, mesmo se você estiver começando do zero.
Portainer é uma ferramenta poderosa que facilita a gestão de containers Docker, e combinada com Docker Swarm, você terá um ambiente escalável e fácil de gerenciar.
Neste vídeo, você vai aprender:
- O que é Portainer e como ele facilita a gestão de containers
- Como configurar um cluster Docker Swarm Instalação e configuração do Portainer
- Como gerenciar containers e stacks de forma simplificada
Se você está interessado em dominar o gerenciamento de containers de forma prática e eficiente, esse tutorial vai te ajudar a dar o primeiro passo!
Acessar Hetzner: https://www.hetzner.com/
Baixar Termius SSH: https://termius.com/
- Importe de DNS para Cloudflare
;; A Records
vps.seudominio.com.br. 1 IN A 0.0.0.0
;; CNAME Records
api.seudominio.com.br. 1 IN CNAME vps.seudominio.com.br.
app.seudominio.com.br. 1 IN CNAME vps.seudominio.com.br.
worflow.seudominio.com.br. 1 IN CNAME vps.seudominio.com.br.
pgadmin.seudominio.com.br. 1 IN CNAME vps.seudominio.com.br.
painel.seudominio.com.br. 1 IN CNAME vps.seudominio.com.br.
webhook.seudominio.com.br. 1 IN CNAME vps.seudominio.com.br.
Atualiza sistema operacional
sudo apt-get update ; apt-get install -y apparmor-utils
Renomeia a VPS (Importante para localizar na rede se precisar)
hostnamectl set-hostname manager1
Altera localhost para manager1 (após renomear, Ctrl+X , Y, Enter (para Fechar e salvar aquivo)
nano /etc/hosts
Comand para Instalar o Ambiente de Docker (Cria conteiner dentro do servidor, separando cada um dos projetos.
curl -fsSL https://get.docker.com | bash
Transforma Docker em Mode Docker Swarm
docker swarm init
Cria um rede interna para os conteiners
docker network create --driver=overlay network_public
Instalação Cria o arquivo do traefik
nano traefik.yaml
(Expanda) Vai abrir editor de código para o traefik, cole o script, e salve com comand: Ctrl+X, Y, Enter. (Faça as alterações necessárias)
version: "3.7"
services:
traefik:
image: traefik:2.11.2
command:
- "--api.dashboard=true"
- "--providers.docker.swarmMode=true"
- "--providers.docker.endpoint=unix:///var/run/docker.sock"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=network_public"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
- "--entrypoints.web.http.redirections.entrypoint.permanent=true"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.letsencryptresolver.acme.httpchallenge=true"
- "--certificatesresolvers.letsencryptresolver.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.letsencryptresolver.acme.email=seuemail.com.br"
- "--certificatesresolvers.letsencryptresolver.acme.storage=/etc/traefik/letsencrypt/acme.json"
- "--log.level=DEBUG"
- "--log.format=common"
- "--log.filePath=/var/log/traefik/traefik.log"
- "--accesslog=true"
- "--accesslog.filepath=/var/log/traefik/access-log"
deploy:
placement:
constraints:
- node.role == manager
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.redirect-https.redirectscheme.scheme=https"
- "traefik.http.middlewares.redirect-https.redirectscheme.permanent=true"
- "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
- "traefik.http.routers.http-catchall.entrypoints=web"
- "traefik.http.routers.http-catchall.middlewares=redirect-https@docker"
- "traefik.http.routers.http-catchall.priority=1"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "vol_certificates:/etc/traefik/letsencrypt"
ports:
- target: 80
published: 80
mode: host
- target: 443
published: 443
mode: host
networks:
- network_public
volumes:
vol_shared:
external: true
name: volume_swarm_shared
vol_certificates:
external: true
name: volume_swarm_certificates
networks:
network_public:
external: true
name: network_public
Comand para Iniciar o conteiner do traefik (Ligar)
docker stack deploy --prune --resolve-image always -c traefik.yaml traefik
Instalação Criar o arquivo do portainer (Gerenciador de Conteiner Docker)
nano portainer.yaml
(Expanda) Vai abrir editor de código para o portainer, cole o script, e salve com comand: Ctrl+X, Y, Enter. (Faça as alterações necessárias)
version: "3.7"
services:
agent:
image: portainer/agent:2.20.1
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- network_public
deploy:
mode: global
placement:
constraints: [node.platform.os == linux]
portainer:
image: portainer/portainer-ce:2.20.1
command: -H tcp://tasks.agent:9001 --tlsskipverify
volumes:
- portainer_data:/data
networks:
- network_public
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
labels:
- "traefik.enable=true"
- "traefik.docker.network=network_public"
- "traefik.http.routers.portainer.rule=Host(`subdominio.com.br`)"
- "traefik.http.routers.portainer.entrypoints=websecure"
- "traefik.http.routers.portainer.priority=1"
- "traefik.http.routers.portainer.tls.certresolver=letsencryptresolver"
- "traefik.http.routers.portainer.service=portainer"
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
networks:
network_public:
external: true
attachable: true
name: network_public
volumes:
portainer_data:
external: true
name: portainer_data
Comand para Iniciar o conteiner do Portainer (Ligar)
docker stack deploy --prune --resolve-image always -c portainer.yaml portainer
Visalize se os conteiners estão em ativos ( Aguarde 30seg)
docker ps
Acesse o subdominio criado para o Portainer e crie seu user e senha. (Salve muito bem essa senha)
✅ Gostou dessas dicas?
Não esqueça de se inscrever no canal e ativar as notificações para acompanhar mais vídeos com tutoriais e dicas sobre infraestrutura e automação para escalar seu negócio!
🚀 Minhas redes sociais:
Instagram: @eufilipelino
Whatsapp consultoria (31) 980253910
#Portainer #DockerSwarm #InfraestruturaTI #AutomaçãoTI #FunisDeVendas2024