Como instalar o Portainer.io no Linux com Docker Swarm

Passo 1

Antes de começarmos a configuração do Portainer.io no Docker Swarm, é essencial garantir um desempenho ótimo e tempo de resposta rápido. Recomendamos contratar um servidor VPS Linux:

https://hostinger.com.br

– Ubuntu ou Debian

Configuração Cloudflare

Passo a passo para configurar o Cloudflare:

1. Criação de uma conta gratuita no Cloudflare:
– Acesse o site do Cloudflare (https://www.cloudflare.com/) e clique em “Sign Up” ou “Get Started” para criar uma conta gratuita.
– Preencha o formulário de inscrição com seu endereço de e-mail e uma senha segura.

2. Cadastro do domínio no Registro.br:
– Acesse o site do Registro.br (https://registro.br/) e faça login na sua conta.
– Selecione o domínio que deseja configurar e acesse a área de configurações DNS.

3. Aponte os nameservers (DNS) da Cloudflare para o Registro.br:
– No Cloudflare, na seção “Adicionar um site”, insira seu domínio e clique em “Adicionar site”.
– O Cloudflare fornecerá dois nameservers (por exemplo, “example.ns.cloudflare.com” e “example.ns.cloudflare.com”). Copie esses nameservers.
– No Registro.br, substitua os nameservers padrão pelos nameservers fornecidos pelo Cloudflare.

4. Criação do registro tipo A para “manager”:
– No Cloudflare, vá para a seção “DNS” do seu domínio.
– Clique em “Adicionar registro” e selecione “Tipo A”.
– No campo “Nome”, insira “manager” (ou o nome desejado).
– No campo “Conteúdo”, insira o endereço IP da sua VPS.
– Certifique-se de que a opção de proxy esteja desativada (sem nuvem laranja) e o TTL configurado como “Auto”.
– Clique em “Salvar”.

5. Criação do registro tipo CNAME para “portainer”:
– Ainda na seção “DNS” do Cloudflare, clique em “Adicionar registro” e escolha “Tipo CNAME”.
– No campo “Nome”, insira “portainer” (ou o nome desejado).
– No campo “Conteúdo”, insira o nome que você escolheu no registro tipo A, por exemplo, “manager.seudominio.com.br”.
– Certifique-se de que a opção de proxy esteja desativada (sem nuvem laranja) e o TTL configurado como “Auto”.
– Clique em “Salvar”.

Essas etapas devem ajudar a configurar seu domínio no Cloudflare conforme solicitado. Certifique-se de aguardar a propagação DNS após fazer essas alterações, pois pode levar algumas horas para que as alterações entrem em vigor em todo o mundo.

Registros-digitalinterativol-com-s-Account-Cloudflare-Config-Tipo-A
Configuração Portainer Cloudflare Docker Swarm

Passo 2

Para acessar o terminal de comandos, utilizaremos o Bitvise SSH Client.

Você pode baixá-lo em: Bitvise Client

Após a instalação, acessaremos o terminal com as seguintes informações:

– Host: <seu IP de servidor>
– Porta: 22
– Nome de usuário: root
– Método inicial: senha
– [x] Armazenar senha criptografada no perfil
– Senha: sua senha
– [x] Habilitar fallback de senha por teclado
– Elevação: Padrão

Login-Bitvise-Client-Exemplo

Passo 3

Atualizando o sistema

É importante você atualizar o sistema da sua VPS, para isso, vamos usar os comandos abaixo:

				
					sudo apt update
				
			
				
					sudo apt upgrade -y
				
			

Passo 4

Instalando Docker de forma automática

				
					curl -fsSL https://get.docker.com -o get-docker.sh
				
			
				
					sudo sh get-docker.sh
				
			

Instalando Docker Swarm

				
					docker swarm init --advertise-addr=IP_DO_SERVIDOR
				
			

Comando:
Substitua IP_DO_SERVIDOR pelo seu IP

Passo 5

Criando Rede para Portainer

Caso ainda não tenha criado uma rede para utilizar com o Portainer, você pode executar o seguinte comando no seu terminal:

				
					docker network create --driver=overlay agent_network
				
			

Passo 6

Criar uma rede Para o Traefik (Opcional)

Vamos seguir o padrão mencionado nos vídeos e começar configurando o Traefik. Aproveitando essa etapa, também podemos criar a rede necessária para o Traefik. Embora o Traefik seja implantado posteriormente dentro do Portainer, é útil criar sua rede desde o início para simplificar o processo e garantir uma configuração coesa.

				
					docker network create --driver=overlay traefik_public
				
			

Passo 7

Criando diretório

Crie a pasta do Portainer, com o seguinte comando:

				
					ls
				
			
				
					mkdir portainer
				
			

Na sequência acesse a pasta com:

				
					ls
				
			
				
					cd portainer/
				
			
				
					nano portainer.yaml
				
			

Passo 8

Stack do Portainer

Agora, você pode copiar o arquivo abaixo para iniciar o processo de implantação do Portainer.

				
					version: "3.8"

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:
      - agent_network
    deploy:
      mode: global
      placement:
        constraints: [ node.platform.os == linux ]

  portainer:
    image: portainer/portainer-ce:2.20.1
    command: -H tcp://tasks.agent:9001 --tlsskipverify
    ports:
      - 9000:9000
    volumes:
      - portainer_data:/data
    networks:
      - agent_network
      - traefik_public
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [ node.role == manager ]
      #labels:
        #- "traefik.enable=true"
        #- "traefik.docker.network=traefik_public"
        #- "traefik.http.routers.portainer.rule=Host(`portainer.SEU_DOMINIO.com`)"
        #- "traefik.http.routers.portainer.entrypoints=websecure"
        #- "traefik.http.routers.portainer.priority=1"
        #- "traefik.http.routers.portainer.tls.certresolver=le"
        #- "traefik.http.routers.portainer.service=portainer"
        #- "traefik.http.services.portainer.loadbalancer.server.port=9000"

networks:
  traefik_public:
    external: true
    attachable: true
  agent_network:
    external: true

volumes:
  portainer_data:
    external: true
				
			

Para salvar e fechar o arquivo .yaml
Precione Ctrl X, depois tecla Y e Enter

Passo 9

Deploy do Portainer

Utilize o comando abaixo para implantar a stack do Portainer usando o Docker Swarm:

				
					docker stack deploy -c portainer.yaml portainer
				
			

Passo 10

Acessando o Portainer

Acesse a barra de endereços do seu navegador da internet e insira o endereço IP seguido de :9000
(por exemplo: 7.161.218.7:9000).

Em seguida, crie um nome de usuário e uma senha forte para configurar sua conta de administrador.

Crie-um-Usuário-Senha-Portainer

Passo 11

Configurando a Stack do Traefik

Clique em Stack no menu lateral e depois em + Add Stack no menu superior do lado direito.

Subindo-Stack-Portainer-Traefik

ATENÇÂO! subistitua a linha 18 pelo [email protected]

				
					version: '3.8'

services:
  traefik:
    image: traefik:v2.11
    command:
      - --providers.docker=true
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --providers.docker.exposedbydefault=false
      - --providers.docker.swarmMode=true
      #defina a mesma rede que você criou para o traefik
      - --providers.docker.network=traefik_public
      - --providers.docker.endpoint=unix:///var/run/docker.sock
      # Config para SSL Lets Encrypt
      # altere para seu e-mail
      - --certificatesresolvers.le.acme.httpchallenge.entrypoint=web
      - --certificatesresolvers.le.acme.email=seuemail@gmail.com
      - --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json
      - --certificatesresolvers.le.acme.tlschallenge=true
      # Global HTTP -> HTTPS
      - --entrypoints.web.http.redirections.entryPoint.to=websecure
      - --entrypoints.web.http.redirections.entryPoint.scheme=https
      #- --api
      #- --log.level=DEBUG
    ports:
      - "80:80"
      #- "8080:8080" # porta do painel do traefik, caso queira ver todas as rotas.
      - "443:443"
    volumes:
      - traefik_certificates:/letsencrypt
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
    networks:
      - traefik_public

volumes:
  traefik_certificates:
    external: true
    name: certificados

networks:
  traefik_public:
    external: true
				
			

Desabilete o “Enable access control” e clique em Actions (Deploy the Stack)

Passo 12

Configurando DNS

Volte no terminal e aplique o comando abaixo para entrar na Stack do Portainer novamente.

				
					nano portainer.yaml
				
			

Para configurar adequadamente as labels no arquivo de configuração YAML, siga estas etapas:

  1. Navegue até a seção ‘labels’.
  2. Use a tecla de seta do teclado para descer até a linha que deseja modificar.
  3. Remova o caractere de comentário ‘#’ no início da linha para descomentar a configuração.
  4. Exclua a linha que contém ‘#- “traefik.docker.network=traefik_public”‘, pois não será mais necessária.
  5. Substitua ‘painel.SEU_DOMINIO.com’ pelo seu domínio real, onde ‘SEU_DOMINIO.com’ representa o seu próprio domínio.
  6. Comente a linha referente à porta 9000, adicionando o caractere ‘#’ no início da linha, para desativá-la.

O resultado final deve ser semelhante a este:

Comentando porta 9000 Stack Portainer

Para salvar e fechar o arquivo .yaml
Precione Ctrl X, depois tecla Y e Enter

Passo 13

Deploy do Portainer

Utilize o comando abaixo para implantar novamente a stack do Portainer:

				
					docker stack deploy -c portainer.yaml portainer
				
			

#Parabéns

Instalação concluída com sucesso!

Se você chegou até aqui é só acessar seu Portainer com SSL instalado.

Gostou do conteúdo? Quer apoiar nosso trabalho?

Você pode fazer uma doação e nos ajudar a continuar criando conteúdo de qualidade. Acesse o link para ver as formas de pagamento disponíveis: https://www.asaas.com/c/io73sms6maiim7ud

Chave Pix: (15) 99855-8323

Share the Post:

Post Relacionados