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

N8N + API WhatsApp + Banco de dados: Crie seu Agente de IA 100% GRÁTIS! (Tutorial sem enrolação 2025)

Crie seu Agente de IA 100% GRÁTIS! (Tutorial sem enrolação 2025) https://youtu.be/EVO3IlndVGU Como Instalar o N8N 100% Gratuito – Passo a Passo Rápido Se você quer aprender a instalar o N8N de forma rápida e eficiente, esta aula é perfeita para você! Vou te guiar em cada etapa da instalação, desde a configuração inicial até a utilização dessa poderosa ferramenta de automação de workflows, tudo de forma simples e clara, mesmo se você estiver começando do zero. O N8N é uma ferramenta de automação open-source que permite criar fluxos de trabalho personalizados conectando várias aplicações sem precisar de programação avançada. E o melhor: é 100% gratuito! 1. Primeiro baixe o Docker Desktop Baixe conforme seu sistema operacional; Windows ou Mac-Apple https://www.docker.com/ 2. Salve o arquivo como ‘docker-compose.yml’ Copie, cole o script (Siga o passo a passo) version: ‘3.8’ services: redis: image: redis:latest platform: linux/amd64 command: redis-server –requirepass default environment: REDIS_USER: default REDIS_PASSWORD: default ports: – “6379:6379” postgres: image: postgres:latest platform: linux/amd64 environment: POSTGRES_USER: default POSTGRES_PASSWORD: default POSTGRES_DB: default ports: – “5432:5432” volumes: – pgdata:/var/lib/postgresql/data waha: image: devlikeapro/waha:latest platform: linux/amd64 environment: WHATSAPP_HOOK_URL: http://host.docker.internal:5678/webhook/webhook WHATSAPP_DEFAULT_ENGINE: GOWS WHATSAPP_HOOK_EVENTS: message volumes: – waha_sessions:/app/.sessions – waha_media:/app/.media ports: – “3000:3000” n8n: image: n8nio/n8n:latest platform: linux/amd64 environment: WEBHOOK_URL: http://host.docker.internal:5678 N8N_HOST: host.docker.internal GENERIC_TIMEZONE: America/Sao_Paulo N8N_LOG_LEVEL: debug N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE: true volumes: – n8n_data:/home/node/.n8n ports: – “5678:5678” volumes: pgdata: waha_sessions: waha_media: n8n_data: 3. Crie uma pasta “automaten8n” e coloque o arquivo .yml dentro. (Siga o passo a passo) 4. Execute comando terminal dentro da pasta. “Botão direito e abrir terminal” (Siga o passo a passo) 5. Digite comando: docker-compose up -d Copie e cole. (Siga o passo a passo) docker-compose up -d Neste vídeo, você vai aprender: Como instalar o N8N em servidor VPS Configuração rápida para começar a criar seus fluxos de automação Se você está buscando uma solução de

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.