Carregando
Como Instalar Docker no Modo Swarm, Portainer e Traefik para um Sistema Completo
Imprimir
  • 0

Como Instalar Docker no Modo Swarm, Portainer e Traefik para um Sistema Completo

Este tutorial detalha como configurar um ambiente completo utilizando Docker Swarm para orquestração de contêineres, Portainer para gerenciamento visual do Docker e Traefik como proxy reverso para gerenciar o tráfego de entrada de forma eficiente. Utilizaremos os repositórios oficiais para garantir que você esteja instalando as versões mais recentes.


Visão Geral do Processo

  1. Instalar o Docker
  2. Inicializar o Docker Swarm
  3. Implantar o Portainer
  4. Implantar o Traefik

Siga cada etapa cuidadosamente para garantir uma configuração bem-sucedida. Este ambiente permitirá que você gerencie facilmente seus contêineres e serviços Docker, além de fornecer uma interface amigável para monitoramento e controle.


1. Instalando o Docker

Primeiro, vamos instalar o Docker utilizando os repositórios oficiais para garantir que você obtenha a versão mais recente.

Para Ubuntu e Debian:

# Atualizar o sistema
sudo apt update && sudo apt upgrade -y

# Instalar dependências necessárias
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

# Adicionar a chave GPG oficial do Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Adicionar o repositório do Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Atualizar o índice de pacotes
sudo apt update

# Instalar o Docker Engine, CLI e Containerd
sudo apt install -y docker-ce docker-ce-cli containerd.io

# Verificar a instalação do Docker
sudo docker --version
      

Para CentOS/RHEL/AlmaLinux/RockLinux:

# Atualizar o sistema
sudo yum update -y

# Instalar dependências necessárias
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# Adicionar o repositório oficial do Docker
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# Instalar o Docker Engine, CLI e Containerd
sudo yum install -y docker-ce docker-ce-cli containerd.io

# Iniciar o serviço do Docker
sudo systemctl start docker

# Habilitar o Docker para iniciar no boot
sudo systemctl enable docker

# Verificar a instalação do Docker
sudo docker --version
      

2. Inicializando o Docker Swarm

O Docker Swarm é uma ferramenta de orquestração que permite gerenciar múltiplos contêineres como um único cluster. Vamos inicializar o Swarm no seu servidor.

# Inicializar o Docker Swarm
sudo docker swarm init --advertise-addr 

# Verificar o status do Swarm
sudo docker info | grep Swarm
      

Substitua <SEU_IP> pelo endereço IP do seu servidor. Após a execução, o comando docker info deve mostrar que o Swarm está ativo.


3. Implantando o Portainer

O Portainer é uma interface gráfica que facilita o gerenciamento de contêineres Docker. Vamos implantar o Portainer como um serviço no Docker Swarm.

# Criar uma rede overlay para o Portainer
sudo docker network create --driver=overlay portainer_network

# Implantar o Portainer
sudo docker service create \
  --name portainer \
  --publish 9000:9000 \
  --replicas=1 \
  --constraint 'node.role == manager' \
  --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
  --mount type=bind,src=portainer_data,dst=/data \
  portainer/portainer-ce:latest \
  -H unix:///var/run/docker.sock
      

4. Implantando o Traefik

Traefik é um proxy reverso moderno que facilita o gerenciamento de rotas de tráfego para seus serviços Docker. Vamos configurar o Traefik para trabalhar com o Portainer e outros serviços.

4.1. Criar uma Rede para o Traefik

# Criar uma rede para o Traefik
sudo docker network create --driver=overlay traefik_network
      

4.2. Criar um Arquivo de Configuração para o Traefik

Crie um arquivo traefik.toml para configurar o Traefik. Este exemplo básico configura o Traefik para usar o Docker como provedor.

# Criar o diretório de configuração
mkdir -p traefik/config

# Criar o arquivo traefik.toml
cat < traefik/config/traefik.toml
[entryPoints]
  [entryPoints.web]
    address = ":80"
  [entryPoints.websecure]
    address = ":443"

[providers.docker]
  swarmMode = true
  network = "traefik_network"
  exposedByDefault = false

[api]
  dashboard = true
  insecure = true
EOF
      

4.3. Implantar o Traefik

# Implantar o Traefik como um serviço no Swarm
sudo docker service create \
  --name traefik \
  --constraint 'node.role == manager' \
  --publish 80:80 \
  --publish 443:443 \
  --publish 8080:8080 \
  --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
  --mount type=bind,src=$(pwd)/traefik/config/traefik.toml,dst=/etc/traefik/traefik.toml \
  --network traefik_network \
  traefik:v2.9
      

5. Configurando o Portainer para Trabalhar com o Traefik

Agora, vamos configurar o Portainer para ser acessível através de um domínio utilizando o Traefik.

# Atualizar o serviço Portainer com labels do Traefik
sudo docker service update \
  --label-add traefik.enable=true \
  --label-add traefik.http.routers.portainer.rule="Host(`<SEU_DOMÍNIO_PORTAINER>`)" \
  --label-add traefik.http.services.portainer.loadbalancer.server.port=9000 \
  portainer
      

Substitua <SEU_DOMÍNIO_PORTAINER> pelo domínio que deseja usar para acessar o Portainer, por exemplo, portainer.seusite.com.


6. Testando o Sistema Completo

Agora que todos os componentes estão instalados e configurados, vamos testar o acesso ao Portainer através do domínio configurado.

  1. Abra o navegador e acesse http://<SEU_DOMÍNIO_PORTAINER>.
  2. Você deve ver a interface de login do Portainer. Complete a configuração inicial se estiver acessando pela primeira vez.
  3. Acesse o dashboard do Traefik em http://<SEU_DOMÍNIO>:8080/dashboard/ para verificar as rotas configuradas.

Conclusão

Neste tutorial, você aprendeu a instalar e configurar Docker no modo Swarm, Portainer para gerenciamento visual e Traefik como proxy reverso para gerenciar o tráfego de entrada. Este ambiente fornece uma base sólida para gerenciar suas aplicações em contêineres de forma eficiente e escalável.

Para configurações avançadas e otimizações, consulte as documentações oficiais:

Se encontrar qualquer dificuldade durante o processo, não hesite em abrir um ticket de suporte ou entrar em contato conosco através de nossos canais de atendimento.

Bom trabalho e aproveite seu novo ambiente Docker!

¿Fue útil la respuesta?