Como instalar o Docker Swarm e Portainer na VPS AWS

Fique atento que para usar Docker Swarm e Portainer, entre outras aplicações, recomendo contratar um servidor VPS Linux bom, se for para testes e estudos pode ser um simples, caso contrário use um bom:

Contabo, AWS, Hostinger, Digital Ocean..

– Ubuntu ou Debian

1-Acessando com user root 

Entre com usuário root no seu terminal

sudo -i

2-Instalando Docker de forma automática

curl fsSL https://get.docker.com o getdocker.sh

sudo sh getdocker.sh

3-Instalando Docker Swarm

docker swarm init advertiseaddr=IP_DO_SERVIDOR

Comando:
Substitua IP_DO_SERVIDOR pelo seu IP da VPS

4-Criando Rede para Portainer

Crie a rede Portainer executando o comando no seu terminal:

docker network create driver=overlay agent_network

5-Criar uma rede Para o Traefik (Opcional)

Vamos seguir o padrão mencionado no vídeo e começar configurando o Traefik. 

docker network create driver=overlay traefik_public

6-Criar um diretório

Crie a pasta do Portainer, com o seguinte comando:

mkdir portainer

Na sequência acesse a pasta com:

cd portainer/

7-Acesso o Stack

nano portainer.yaml

8-Stack do Portainer

Agora, você pode copiar o código 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

9-Deploy do Portainer

Utilize o comando abaixo para implantar a stack do Portainer usando o Docker Swarm com o código:

docker stack deploy c portainer.yaml portainer

10-Acessando o Portainer

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

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

11-Configurando a Stack do Traefik

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

Subistitua a linha 18 pelo seuemail@gmail.com

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)

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 ‘manager.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:

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

13-Deploy do Portainer

Utilize o comando abaixo para executar a stack do Portainer:

docker stack deploy c portainer.yaml portainer

Fim.

🔗 Compartilhe este artigo se ele te ajudou!

WhatsApp
Telegram
Facebook
LinkedIn