Como Instalar Docker no Modo Swarm, Portainer e Traefik para um Sistema Completo
Stampa- 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
- Instalar o Docker
- Inicializar o Docker Swarm
- Implantar o Portainer
- 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
      
sudo com comandos Docker, você pode adicionar seu usuário ao grupo docker:
sudo usermod -aG docker $USERDepois, faça logout e login novamente ou execute
newgrp docker.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
      
http://<SEU_DOMÍNIO>:9000 ou http://:9000.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
      
http://<SEU_DOMÍNIO>. O dashboard do Traefik está disponível em http://<SEU_DOMÍNIO>:8080/dashboard/.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.
<SEU_DOMÍNIO_PORTAINER> aponte para o IP do seu servidor. Além disso, configure os registros DNS adequados para que o Traefik possa rotear o tráfego corretamente.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.
- Abra o navegador e acesse http://<SEU_DOMÍNIO_PORTAINER>.
- Você deve ver a interface de login do Portainer. Complete a configuração inicial se estiver acessando pela primeira vez.
- 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!
