Como instalar o Portainer.io no Linux com Docker Swarm

Como instalar o Portainer.io no Linux com Docker Swarm

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

Navegue rápido

Mais recente

Autor Filipe Lino

Autor Filipe Lino

Consultor de Tecnologia e Growth Marketing, Especialista em CRM Sales | Hubspot, com mais de 6 anos de experiência em atendimento ao cliente, experiência e jornada do cliente.

Linkedin
Ver mais

Mais lidas

Utilizamos seus dados para analisar e pesonalizar nossos conteúdoso e anúncios durante a sua navegação em nossos sites, em serviçoes de terceiros e parceiros. Ao navegar pelo site, você autoriza a ClickGrowth a coletar tais informações e utilizá-las para estas finalidades. Em caso de dúvidas, acesse nossa Política de Privacidade.