Corre Tech

Noticias, artigos, e dicas sobre tecnologia para sua área

Dicas

Tutorial: implantar um software full-stack em um Docker Swarm

Tutorial: implantar um software full-stack em um Docker Swarm

Se você estiver tentando dimensionar implantações de aplicativos do Docker , precisará garantir o agrupamento de um conjunto de nós coletivamente em um Docker Swarm . Já mencionei como implantar um Docker Swarm (com armazenamento persistente) em “ Criar um Docker Swarm com armazenamento persistente utilizando GlusterFS ”. Você não precisa necessariamente implantar o Swarm com armazenamento persistente, mas para poder reter seu conhecimento (se algo acontecer, caso contrário, você precisará migrar a implantação), você precisará implantar o Swarm com persistência.

Ao fazer seu Docker Swarm funcionar, confirme se todos os nós estão relacionados e preparados executando o comando (no controlador):

docker node ls

Dentro da saída, você deve ver uma coisa como esta:

tpsl7enzswhkeef3dh8uswkxp *  docker1    Prepared     Energetic         Chief      20.10.17

xnye548afhe1hc832kulh5sui     docker2    Prepared     Energetic                          20.10.17

cammaze2fcfcomjpdo0fwz105   docker3    Prepared    Energetic                          20.10.17

Se todos os nós estiverem listados como Preparados e Energéticos, você pode implantar na pilha. Caso contrário, você deve solucionar o motivo até que cada nó seja listado como tal.

Implantar um registro nativo

Com o Swarm instalado e funcionando, sua próxima atividade é implantar um registro local do Docker. Felizmente, existe uma imagem de contêiner que foi criada especialmente para essa função. No nó do controlador Docker Swarm, implante o registro com o comando:

docker service create --name registry --publish printed=5000,goal=5000 registry:2

No caso de você ter problemas com o comando docker service ls, você deve ver o registro listado como tal:

zhquhrodsirp   registry   replicated   1/1        registry:2   *:5000->5000/tcp

Observe que o ID do seu serviço não será idêntico ao que você vê acima (a sequência aleatória de caracteres na primeira coluna). Como você o vê listado, você está pronto para ir. Você também pode confirmar se o registro foi implantado com eficiência emitindo o comando:

curl http://localhost:5000/v2/

Se a única saída que você vê for {} , todas as partes estão funcionando conforme previsto.

Crie um software padrão

Adivinha o que vamos criar? Se você adivinhou “Hiya World”, você pode estar certo. Crie uma nova listagem para lidar com o desafio:

mkdir ~/swarmtest

Desenvolva essa nova listagem com:

cd ~/swarmtest

Primeiro, vamos criar um arquivo Python, chamado app.py com o comando:

nano app.py

Nesse arquivo, cole o seguinte:

Salve e feche o arquivo.

A seguir, vamos criar um arquivo de necessidades com:

nano necessities.txt

Nesse arquivo, adicione o seguinte:

Salve e feche o arquivo.

Agora, vamos criar nosso Dockerfile com o comando:

nano Dockerfile

Nesse arquivo, cole o seguinte conteúdo:

Por fim, crie um arquivo docker-compose.yml com:

nano docker-compose.yml

Nesse arquivo, cole o seguinte:

Salve e feche o arquivo.

Implantar o aplicativo

Com todos os itens no lugar, vamos agora implantar a pilha em nosso Docker Swarm. No entanto, antes de tentarmos isso, vamos dar uma olhada para garantir que realmente funcione com:

docker-compose up -d

Caso receba o erro de que o comando docker-compose não foi descoberto, configure-o (em uma distribuição baseada no Ubuntu) com:

sudo apt-get set up docker-compose -y

Assim que a implantação estiver completa, dê uma olhada no aplicativo com:

curl http://localhost:8000

É melhor ver algo assim:

Execute-o mais uma vez e a saída provavelmente será:

Desative o aplicativo com o comando:

docker-compose down --volumes

Implantar o aplicativo no Docker Swarm

Para nosso truque subsequente, implantaremos o aplicativo em nosso Docker Swarm. Antes de fazermos isso, devemos primeiro enviar a imagem recém-gerada para nosso registro nativo com:

docker-compose push

Nesse nível, nossa imagem de conteúdo textual está disponível para nosso registro nativo e pode ser usada para implantar no Swarm. Vamos implantar a pilha com:

docker stack deploy --compose-file docker-compose.yml swarmtest

Confirme se a pilha está funcionando com:

docker stack companies swarmtest

A saída do comando acima deve aparecer assim:

Vamos garantir que esteja funcionando em todos os nós. Digamos que seus nós estejam nos endereços IP 192.168.1.60, 192.168.1.61 e 192.168.1.63. Preocupe-se com as instruções:

curl http://192.168.1.60:8000

curl http://192.168.1.61:8000

curl http://192.168.1.63:8000

É melhor produzir assim:

Parabéns! Você simplesmente implantou um utilitário de pilha completa em um Docker Swarm. Você possivelmente pode derrubar essa pilha com o comando:

docker stack rm swarmtest

Concluído e executado.

Criado com esboço.

Share this post

About the author

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *