Comentários

0%

FOCO NO MERCADO DE TRABALHO

Simulando sistemas distribuídos com Docker

Caique Silva Pereira

Criação de um contêiner

Criação e configuração de um contêiner para um servidor web Apache através do Docker.

Fonte: Shutterstock.

Deseja ouvir este material?

Áudio disponível no material digital.

sem medo de errar

Mais um passo e a tão cobiçada vaga naquela grande empresa será sua! O coordenador está gostando de seu desempenho nos testes e diz que, caso você consiga orquestrar o servidor web Apache em um cluster simples, será contratado! Desta forma:

  1. Crie um cluster com cinco réplicas do servidor web Apache utilizando o Docker Swarm.
  2. Verifique em quais nós do cluster esse serviço está rodando.
  3. Acesse a página de boas-vindas desse servidor Apache através do(s) endereço(s) IPv4 de cada nó onde esse serviço web estiver rodando.

Para resolver esse desafio, primeiramente você deve estar logado na plataforma de playground do Docker, conforme orientações já apresentadas anteriormente. Uma vez que obteve acesso à plataforma, você deverá seguir os passos abaixo:

  1. Como não foi especificada a quantidade de nós do cluster, crie o mesmo com 3 nós, que serão suficientes para analisar o cluster sem comprometer a usabilidade da plataforma de testes do Docker. Sendo assim, adicione 3 nós, que farão parte do cluster, através do botão Add new instance.
  2. No nó que você deseja que seja o mestre, digite o seguinte comando:

    docker swarm init --advertise-addr

    Este comando define o nó como manager do cluster. Repare que, ao executá-lo, é apresentada uma saída com a mensagem: “Para adicionar um worker ao swarm, execute o seguinte comando”, conforme pode ser visto (em inglês) na Figura 4.22. Sendo assim, copie a saída que foi apresentada a você (que vai ser diferente da destacada em amarelo na Figura 4.22), pois esse comando deverá ser executado em cada um dos demais nós do cluster, adicionando-os como workers desse cluster.

Figura 4.22 | Saída do comando docker swarm init
Fonte: captura de tela elaborada pelo autor.
  • 3. Agora que os nós estão criados e seus papéis definidos, para criar o serviço que estará rodando (de maneira distribuída, replicada) do servidor web Apache, digite o seguinte comando no nó mestre:
  • docker service create --name WEB --publish 80:80 --replicas=5 httpd

Esse comando cria 5 instâncias de um servidor web Apache, que responderá na porta mapeada (80, nesse caso) e, para facilitar sua monitoração, demos um nome “amigável” a este serviço: WEB.

  • 4. Para saber em quais nós as 5 réplicas desse serviço estão sendo executadas, digite o seguinte comando:
  • docker service ps WEB

No caso da Figura 3.23 abaixo, podemos ver que 2 instâncias estão rodando no nó 1, e as outras 3 estão rodando no nó 2.

Figura 4.23 | Porta mapeada aparece como um hyperlink
Fonte: captura de tela elaborada pelo autor.
  • 5. Por fim, precisamos acessar a página de boas-vindas desse servidor Apache através do(s) endereço(s) IPv4 de cada nó onde esse serviço web estiver rodando. Reparou que, ao criar o serviço, a porta que você mapeou aparece na parte superior, como um hyperlink? Caso não tenha percebido, veja a porta 80, destacada em vermelho na Figura 4.24. Para acessar a página de boas-vindas, basta clicar nessa porta, em cada um dos nós onde esse serviço está rodando (no caso, nós 1 e 2 do cluster), para vermos a famosa mensagem “It works!” do Apache.
Figura 4.24 | Porta mapeada aparece como um hyperlink
Fonte: captura de tela elaborada pelo autor.

Avançando na prática

Criando um contêiner para um servidor web Apache através do Docker

Você deve criar um contêiner para um servidor web Apache através do Docker e verificar se consegue acessar a página de boas-vindas desse servidor Apache, através do endereço IP de localhost da máquina física e da porta que foi mapeada na criação do contêiner.

Para ajudá-lo nesta tarefa, siga as seguintes etapas:

  1. Acesse o website Play with Docker (PLAY WITH DOCKER, [s.d]).

    Esse website, desenvolvido pela própria equipe do Docker, dará acesso – limitado de 4 horas – a um ambiente remoto no qual o Docker já está instalado, bastando digitar os comandos para criação dos contêineres. Perceba que você necessitará realizar um cadastro (gratuito) na plataforma, para posteriormente realizar o login nesse ambiente.

  2. Uma vez logado, você poderá digitar os comandos no terminal (área preta do portal), conforme ilustrado abaixo, após clicar no botão Add New Instance, conforme Figura 4.25:
    Figura 4.25 | Acesso ao ambiente remoto do Docker
    Fonte: captura de tela elaborada pelo autor.
  3. Digite o seguinte comando:

    docker run -d -p 80:80 httpd

  4. Agora, como o servidor web apache, instalado no contêiner, já deve estar rodando na porta 80, basta acessar a página de boas-vindas pelo navegador web de sua preferência, com o link composto por:

    ip< endereço IP público>-<indentificador do nó>-<porta mapeada>.direct.labs.play-with-docker.com

    • As informações necessárias para formatar o link de acesso, conforme padrão acima, podem ser obtidas através da cópia dos dados de acesso via SSH, com um clique no respectivo botão, como destacado em vermelho na Figura 4.26.
      Figura 4.26 | Informações de acesso
      Fonte: captura de tela elaborada pelo autor.
  5.  A título de exemplo, o link da figura acima, após adaptado com as informações de acesso, ficou da seguinte forma: ip172-18-0-96-bflibjav9dig00cho47g-80.direct.labs.play-with-docker.com/.

  6. Caso você veja a mensagem It works!, parabéns: você passou para a próxima – e última – etapa do processo seletivo! Caso não apareça essa mensagem, certifique-se de que você montou o link corretamente, comparando o padrão apresentado na etapa 4, substituindo com as informações referentes à sua conexão.

Bons estudos!

AVALIE ESTE MATERIAL

OBRIGADO PELO SEU FEEDBACK!