Implantar múltiplas pilhas de exemplo
Nesta etapa, você aprenderá como implantar múltiplas pilhas em seu Docker Swarm. Isso demonstra como você pode gerenciar diferentes aplicações ou serviços independentemente dentro do mesmo swarm.
Implantaremos duas pilhas simples: uma usando Nginx e outra usando o Apache HTTP Server.
Primeiro, vamos criar um diretório para a definição da pilha Apache. Navegue de volta para o diretório ~/project e crie um novo diretório chamado my-apache-stack.
cd ~/project
mkdir my-apache-stack
cd my-apache-stack
Agora, crie um arquivo chamado docker-compose.yml dentro do diretório my-apache-stack usando o editor nano.
nano docker-compose.yml
Cole o seguinte conteúdo no arquivo docker-compose.yml:
version: "3.8"
services:
web:
image: httpd:latest
ports:
- "81:80"
deploy:
replicas: 1
restart_policy:
condition: on-failure
Este arquivo docker-compose.yml define um serviço chamado web que usa a imagem httpd:latest. Ele mapeia a porta 81 no host para a porta 80 no contêiner para evitar conflitos de porta com a pilha Nginx que implantaremos mais tarde. Ele também especifica uma réplica e uma política de reinício.
Salve o arquivo pressionando Ctrl + X, depois Y e Enter.
Antes de implantar, vamos baixar a imagem httpd:latest.
docker pull httpd:latest
Agora, implante a pilha Apache usando o comando docker stack deploy. Vamos nomear esta pilha apache_stack.
docker stack deploy -c docker-compose.yml apache_stack
Este comando implanta a pilha Apache.
Em seguida, vamos voltar para o diretório my-nginx-stack para implantar a pilha Nginx novamente.
cd ~/project/my-nginx-stack
Implante a pilha Nginx usando o comando docker stack deploy. Vamos nomear esta pilha nginx_stack.
docker stack deploy -c docker-compose.yml nginx_stack
Agora, vamos verificar se ambas as pilhas foram implantadas. Liste as pilhas implantadas.
docker stack ls
Você deve ver tanto apache_stack quanto nginx_stack listadas.
Você também pode verificar os serviços para cada pilha individualmente.
docker stack services apache_stack
docker stack services nginx_stack
Você deve ver o serviço apache_stack_web e o serviço nginx_stack_web, ambos em execução com 1/1 réplicas.
Você pode acessar o servidor web Apache abrindo um navegador web e navegando para o endereço IP da sua VM LabEx na porta 81. Você deve ver a página de boas-vindas padrão do Apache. O servidor web Nginx ainda deve estar acessível na porta 80.