8
respostas

Não entendi nada dessa aula

Eu não consegui entender o funcionamento das coisas dessa aula de jeito nenhum. Alguém poderia me explicar, por gentileza? Não deu nem pra fazer anotações porquê foi basicamente copiar o que foi mostrado, não teve muita explicação

8 respostas

Olá, Daniel. Tudo bem?

Quais partes você não entendeu? Criação de uma rede do docker, o motivo de ter que criar uma rede para comunicação dos containers, qual a função dos containers? Essa aula usa os conhecimentos das anteriores, então temos que tentar entender o que não ficou nítido pra você. Se puder descrever mais, podemos te ajudar de forma mais acertiva.

Agradeço desde já.

Quanto à essas 3 coisas está tudo bem. É mais sobre a criação das imagens usadas; eu não entendi como é que elas conversam. Por exemplo, não compreendi porquê o nome do container do banco importa e o do alura-books não. Outra coisa, eu criei a rede com um nome diferente e não deu certo, então desfiz tudo, criei uma com o mesmo nome e funcionou. Teve alguma configuração pra que a comunicação entre os containers acontecesse (além da criação da rede) não teve? E isso que eu não consegui entender. Apesar de ter fuçado nos arquivos dessas imagens e dos containers a torto e a direito

  • Os dois container conversam por meio da rede "minha-bridge", que o professor criou nas aulas anteriores. Ele fala que criou e depois mostra o comando de como criar uma pelo comando docker network create --driver bridge {NAME}. Importante aqui também o conceito, a imagem é usada para criar o container, e os containers (alurabooks e mongo) foram criados dentro da rede "minha-bridge".
  • O container do banco precisa ter um nome pq o container do alurabooks busca o banco de dados pelo nome, ou seja, a aplicação alurabook ja esta definida para procurar um banco mongoDB no host meu-mongo, por isso o container do mongo precisa ter esse nome. Já o container do alurabook não precisa de ter nenhum nome, já que não tem nehum outro container referenciando ele.
  • Não tem nenhum outra configuração. Basicamente os passos são
    1. Criar bridge -> docker network create --driver bridge minha-bridge
    2. Criar o container do banco apartir da imagem do mongo com o nome correto para o container e especificando a bridge -> docker run -d --network minha-bridge --name meu-mongo mongo:4.4.6
    3. Criar o container alurabook dentro da mesma bridge e fazendo o mapeamento de porta que foi mostrado no segundo modulo (o name foi mapeado mas não precisava) docker run -d --network minha-bridge --name alurabooks -p 3000:3000 aluradocker/alura-books:1.0

Basicamente com isso ai já da pra acessa locahost:3000 e visualiza a aplicação. Se acessar localhost:300/seed, a aplicação vai popular o banco e exibir informações na tela.

Ok, mas como a aplicação faz para referenciar o container? Onde está a configuração com esse nome em específico já predefinido? Como ela foi feita?

A aplicaçao ja estava definida para buscar um banco de dados no host "meu-mongo". Isso foi feito durante o desenvolvimento da aplicação, provavemente em outro curso aqui, e nesse de docker o professor simplemente reaproveitou pra mostrar um exemplo pratico.

Entendi. Em qual curso da plataforma eu posso aprender como isso foi feito?

Ai nao sei cara, provavelmente algum de api que acessa o mongoDB

Belezinha. Muito obrigado, mano. Vou dar uma olhada