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 get–docker.sh
sudo sh get–docker.sh
3-Instalando Docker Swarm
docker swarm init —advertise–addr=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:
- Navegue até a seção ‘labels’.
- Use a tecla de seta do teclado para descer até a linha que deseja modificar.
- Remova o caractere de comentário ‘#’ no início da linha para descomentar a configuração.
- Exclua a linha que contém ‘#- “traefik.docker.network=traefik_public”‘, pois não será mais necessária.
- Substitua ‘manager.SEU_DOMINIO.com’ pelo seu domínio real, onde ‘SEU_DOMINIO.com’ representa o seu próprio domínio.
- 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.