‫Os requisitos para esta palestra são que você assistiu às palestras anteriores da rede e entendeu os principais
‫conceitos das redes Docker e os comandos que a acompanham.
‫Tudo certo.
‫E nesta palestra, você aprenderá e brincará com o DNS e como isso afeta os contêineres em redes
‫personalizadas e redes padrão.
‫Vamos ver
‫rapidamente a importância de termos um bom DNS, porque você não pode confiar em endereços IP dentro de
‫contêineres, pois as coisas são muito dinâmicas. Veremos as diferenças entre redes padrão e personalizadas em relação
‫à maneira como elas lidam com o DNS.
‫E então verificaremos a opção --link para execução de contêiner para ativar o DNS na rede de
‫ponte padrão.
‫Portanto, há mais uma coisa crucial para todos esses contêineres e redes virtuais e
‫eles conversando entre si; e isso é nomeação. Porque no mundo dos contêineres constantemente se lança e desaparece,
‫se move, se expande e se encolhe, e toda a maravilha desses micro serviços que estamos vendo
‫surgir em todos os lugares é que não podemos mais confiar facilmente nos endereços IP como forma de falar de
‫uma coisa para a outra. Porque não podemos supor de minuto a minuto que os
‫endereços IP serão os mesmos.
‫O contêiner pode desaparecer ou pode falhar e o Docker o traz para outro lugar.
‫É muito dinâmico e muito complicado para lidar com isso.
‫Portanto, verifica-se que existe uma solução interna para isso, que é a nomeação de DNS. O Docker usa os nomes dos contêineres como
‫o equivalente a um nome de host para contêineres conversando entre si.
‫Agora, se você se lembra, tínhamos apenas dois contêineres em execução ...
‫se você se lembra do Nginx, estava em uma nova rede, chamada my_app_net.
‫Certo.
‫E tem o único contêiner. Como eu criei essa nova rede,
‫essa não é a rede
‫de ponte padrão, ela realmente recebe um novo recurso especial, que é a resolução automática de DNS para todos os contêineres
‫nessa rede virtual de todos os outros contêineres dessa rede virtual usando seus nomes de contêiner.
‫Se eu criar um segundo contêiner nessa rede virtual, eles poderão se encontrar, independentemente do
‫endereço IP, com seus nomes de contêiner.
‫Então, vamos tentar o seguinte: nome da execução do contêiner do docker ... e vamos chamá-lo de meu nginx ... e vamos especificar a rede
‫como minha rede de aplicativos a
‫partir da imagem nginx.
‫Agora, se olharmos para essa rede, devemos ver 2 contêineres; e, se eu executar um executor de
‫contêiner de docker, a partir do novo contêiner que acabei de criar - oops, também
‫precisamos da TI - e fazemos um ping no novo nginx, você
‫percebe que a resolução do DNS simplesmente funciona. Isso torna super fácil para você ter um contêiner e
‫você precisa definir um arquivo de configuração para conversar, talvez digamos que o servidor
‫PHP falará com o back-end do MySQL. Ctrl-c fora disso, e você verá que funciona da outra maneira.
‫Se eu pular para o novo contêiner nginx e tentar executar ping no my ngnix, você verá que a resolução funciona nos
‫dois sentidos.
‫E é isso que resolve um enorme problema quando você está girando os contêineres, porque não pode prever quanto tempo
‫eles durarão e onde poderão demorar um minuto a partir de agora em um design de produção no
‫qual você tenha um cluster de Servidores Docker Swarm.
‫Portanto, pode não mudar muito em sua máquina local, mas se você parar 3 ou 4 contêineres
‫e iniciar os mesmos contêineres e iniciá-los em uma ordem diferente,
‫eles podem não ter o mesmo endereço IP. Mas seus nomes de host ou de contêiner sempre serão
‫os mesmos.
‫E assim você pode confiar neles.
‫Agora, devo observar que, se fizermos uma lista de redes docker, a rede padrão da ponte terá uma desvantagem aqui.
‫Ele não possui o servidor DNS incorporado por padrão.
‫Então você pode usar o - link.
‫Portanto, ao criar um contêiner, você perceberá que há uma opção de link e poderá especificar links
‫manuais entre contêineres nessa rede de pontes padrão.
‫Mas, na verdade, é muito mais fácil criar uma nova rede para seus aplicativos, para que você não precise fazer
‫isso o tempo todo.
‫E em uma seção futura, quando falamos sobre o Docker Compose, você verá como isso
‫fica ainda mais fácil, porque o Compose cria automaticamente novas redes virtuais sempre que você cria um aplicativo.
‫Assim, a comunicação entre seus contêineres fica ainda mais fácil.
‫Como uma rápida recapitulação, abordamos nesta palestra sobre como os contêineres não podem ou não devem confiar nos endereços IP para
‫conversar um com o outro, porque eles simplesmente não podem ser invocados.
‫E esse DNS é realmente o padrão aqui para como fazemos a intercomunicação entre contêineres
‫no mesmo host e entre hosts.
‫Por isso, recomendo que você sempre crie redes personalizadas, pois é mais fácil assim do que criar
‫um link - o tempo todo.
‫Depois, fiz um teaser sobre o Docker Compose e como isso facilitará tudo
‫isso, principalmente a rede.