Como Implantar Serviços Docker Swarm

DockerBeginner
Pratique Agora

Introdução

Este tutorial guiará você pelo processo de implantação e gerenciamento de aplicações usando o Docker Swarm, uma ferramenta robusta de orquestração de contêineres. Você aprenderá a configurar um cluster Docker Swarm, implantar serviços, dimensioná-los e balancear a carga, atualizar e reverter serviços e proteger seu ambiente Docker. Ao final deste tutorial, você terá um sólido entendimento de como aproveitar o Docker Swarm para otimizar seus processos de implantação e gerenciamento de aplicações.

Conceitos Básicos do Docker Swarm

Introdução ao Docker Swarm

O Docker Swarm é uma solução nativa de agrupamento e orquestração para contêineres Docker. Ele permite que desenvolvedores criem e gerenciem um cluster de nós Docker, transformando várias máquinas físicas ou virtuais em um único e poderoso sistema virtual para implantação e gerenciamento de contêineres.

Conceitos Chave do Docker Swarm

O Docker Swarm introduz vários conceitos cruciais para a orquestração de contêineres:

Conceito Descrição
Modo Swarm Modo de agrupamento nativo para Docker
Nó Gerenciador Controla e gerencia o cluster Swarm
Nó Trabalhador Executa as cargas de trabalho de contêineres
Serviço Define a aplicação em contêiner a ser implantada

Visão Geral da Arquitetura

graph TD A[Nó Gerenciador] --> B[Nó Trabalhador 1] A --> C[Nó Trabalhador 2] A --> D[Nó Trabalhador 3]

Inicializando o Cluster Swarm

Para iniciar um cluster Docker Swarm, utilize os seguintes comandos no Ubuntu 22.04:

## Instalar o Docker
sudo apt-get update
sudo apt-get install docker.io

## Inicializar o modo Swarm
docker swarm init

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

Gerenciamento de Nós

A adição de nós ao cluster requer um token de junção gerado pelo nó gerenciador:

## No nó gerenciador: Gerar token de junção

## No nó trabalhador: Juntar-se ao cluster

Fundamentos da Implantação de Serviços

Criar e implantar um serviço simples em todo o cluster:

## Implantar um serviço nginx replicado
docker service create --replicas 3 --name web nginx

Este comando cria três instâncias idênticas do contêiner nginx distribuídas pelo cluster Swarm, demonstrando as capacidades centrais de orquestração de contêineres do Docker Swarm.

Configuração do Cluster

Estratégia de Inicialização do Swarm

A configuração do cluster Docker Swarm envolve o gerenciamento estratégico de nós e a configuração precisa da rede. O processo de inicialização determina a arquitetura fundamental do cluster e os protocolos de comunicação.

Papéis e Configuração dos Nós

graph TD A[Nó Gerenciador] -->|Controla| B[Nós Trabalhadores] A -->|Gerencia| C[Implantação de Serviços] A -->|Monitora| D[Saúde do Cluster]
Tipo de Nó Responsabilidades Contagem Recomendada
Nós Gerenciadores Gerenciamento do cluster, orquestração 3-5 nós
Nós Trabalhadores Execução de contêineres Escalável

Comandos de Configuração de Rede

Configure a rede Docker Swarm com IP e interface específicos:

## Especificar a interface de rede para o swarm
docker swarm init --advertise-addr eth0:2377

## Visualizar a configuração atual da rede
docker info | grep -A 5 Swarm

Configuração Avançada de Nós

Adicione nós com rótulos e restrições específicos:

## Adicionar nó com rótulo personalizado
docker node update --label-add type=backend node1

## Implantar serviço em tipo de nó específico
docker service create --constraint node.labels.type==backend nginx

Segurança e Autenticação

Gerencie tokens de junção de nós com segurança:

## Regenerar token de junção de trabalhador
docker swarm join-token worker -q

## Girar token de junção de gerenciador
docker swarm join-token manager -q

Implantação de Serviços

Fundamentos da Criação de Serviços

Os serviços Docker Swarm representam a unidade central de implantação de aplicações, permitindo a gestão distribuída de contêineres em todo o cluster.

graph LR A[Serviço Docker] --> B[Replicatas de Contêineres] A --> C[Equilíbrio de Carga] A --> D[Atualizações Progressivas]

Estratégias Básicas de Implantação de Serviços

Tipo de Implantação Descrição Exemplo de Comando
Modo Replicado Número fixo de contêineres docker service create --replicas 3
Modo Global Um contêiner por nó docker service create --mode global

Exemplo de Criação de Serviço

Implante uma aplicação web com configurações específicas:

## Criar um serviço web com definições personalizadas
docker service create \
  --name webapp \
  --replicas 5 \
  --publish 8080:80 \
  --update-parallelism 2 \
  --update-delay 10s \
  nginx:latest

Gestão Avançada de Serviços

Escale e atualize serviços dinamicamente:

## Escalar instâncias de serviço
docker service scale webapp=10

## Executar atualização progressiva
docker service update \
  --image nginx:latest \
  --update-parallelism 2 \
  --update-delay 10s \
  webapp

Restrições e Colocação de Serviços

Configure a implantação de serviços com restrições de nó:

## Implantar serviço em tipos de nó específicos
docker service create \
  --constraint node.labels.type==web \
  --name frontend \
  nginx:alpine

Resumo

Este tutorial abrangente sobre "Implantação e Gestão de Aplicações com Docker Swarm" forneceu-lhe o conhecimento e as competências para utilizar eficazmente o Docker Swarm nas suas necessidades de implantação e gestão de aplicações. Aprendeu a configurar um cluster Docker Swarm, implantar serviços, escalar e balancear a carga deles, atualizar e reverter serviços e proteger o seu ambiente Docker. Com estas competências, agora pode gerir as suas aplicações com confiança, utilizando as capacidades de orquestração de contêineres poderosas do Docker Swarm.