‫Les conditions préalables à cette conférence sont que vous ayez déjà vu les conférences précédentes sur le réseau et que vous compreniez
‫les concepts clés des réseaux Docker et les commandes qui vont avec.
‫D'accord.
‫Et cette leçon, vous allez apprendre à jouer avec le DNS et son impact sur les conteneurs dans les réseaux personnalisés
‫et les réseaux par défaut.
‫Nous verrons rapidement
‫à quel point il est important d'avoir un bon DNS, car vous ne pouvez pas compter sur les adresses IP dans
‫les conteneurs, car les choses sont tellement dynamiques. Nous examinerons les différences entre les réseaux par défaut et les réseaux personnalisés
‫en ce qui concerne la manière dont ils traitent le DNS.
‫Nous verrons ensuite l'option --link pour l'exécution du conteneur afin d'activer DNS sur le réseau de pont
‫par défaut.
‫Il y a donc une dernière chose qui est cruciale pour tous ces conteneurs et
‫réseaux virtuels et leur communication mutuelle; et c'est nommer. Parce que dans le monde des conteneurs qui se lancent
‫et disparaissent sans cesse, se déplacent, s’agrandissent et se rétrécissent, et que tout le merveilleux de ces
‫micro-services que nous voyons se répandre partout, c’est que nous ne pouvons plus compter sur les adresses IP pour
‫parler. d'une chose à l'autre. Parce que nous ne pouvons pas supposer de minute en minute que
‫les adresses IP seront même les mêmes.
‫Le conteneur peut s'en aller ou il peut échouer, puis Docker le ramène ailleurs.
‫C'est trop dynamique et trop compliqué pour y faire face.
‫Il s’avère donc qu’il existe une solution intégrée à ce problème, à savoir le nommage DNS. Docker utilise les noms de conteneur comme
‫l’équivalent d’un nom d’hôte pour les conteneurs qui se parlent.
‫Maintenant, si vous vous rappelez, nous venons d'avoir deux conteneurs en cours d'exécution ...
‫si vous vous rappelez que Nginx était sur un nouveau réseau, appelé my_app_net.
‫Droite.
‫Et a un conteneur dessus. Comme j'ai créé ce nouveau réseau,
‫qui n'est pas le réseau
‫de pont par défaut, une nouvelle fonctionnalité spéciale, à savoir la résolution DNS automatique pour tous les conteneurs de ce réseau virtuel,
‫est fournie, à partir de tous les autres conteneurs de ce réseau virtuel et de leurs noms.
‫Si je devais créer un deuxième conteneur sur ce réseau virtuel, ils pourront se trouver, quelle que
‫soit l'adresse IP, avec leurs noms de conteneur.
‫Essayons donc ceci: nom d'exécution du conteneur docker ... et nous l'appellerons mon nginx ... et nous allons spécifier le
‫réseau comme mon réseau d'applications à
‫partir de l'image nginx.
‫Maintenant, si nous regardons ce réseau, nous devrions voir 2 conteneurs; et, si je fais un exec de
‫conteneur docker, à partir du nouveau conteneur que je viens de créer - oups, nous avons
‫également besoin de l'informatique - Et nous faisons un ping vers le nouveau
‫nginx, vous remarquerez que la résolution DNS fonctionne. Cela rend très facile pour vous d'avoir un conteneur
‫et vous devez définir un fichier de configuration dans lequel parler, peut-être que le
‫serveur PHP communiquera avec le serveur MySQL. Ctrl-c en dehors de cela, et vous verrez que cela fonctionne aussi dans l'autre sens.
‫Si je saute dans le nouveau conteneur nginx et que je tente d’envoyer une requête ping à mon ngnix, vous constaterez que la résolution fonctionne dans les
‫deux sens.
‫Et c’est ce qui résout un énorme problème lorsque vous fabriquez des conteneurs, car vous ne pouvez pas prédire combien de
‫temps ils dureront et où ils pourraient être dans une minute à partir de maintenant dans une conception de
‫production où vous avez une grappe de Serveurs Docker Swarm.
‫Cela peut donc ne pas beaucoup changer sur votre machine locale, mais si vous arrêtez 3 ou 4
‫conteneurs, puis que vous démarrez les mêmes conteneurs et dans un ordre
‫différent, ils n'auront peut-être pas la même adresse IP. Mais leurs noms d'hôte, ou leurs noms de conteneur, seront
‫toujours les mêmes.
‫Et vous pouvez donc compter sur eux.
‫Maintenant, je devrais noter que si nous faisons une liste de réseaux Docker, le réseau de pont par défaut présente un inconvénient ici.
‫Le serveur DNS n'est pas intégré par défaut.
‫Donc, vous pouvez utiliser le --link.
‫Ainsi, lorsque vous créez un conteneur, vous remarquerez qu'il existe une option de lien et que vous pouvez en fait spécifier des liens manuels
‫entre les conteneurs de ce réseau de pont par défaut.
‫Mais en réalité, il est beaucoup plus facile de créer un nouveau réseau pour vos applications, de sorte que vous n’ayez pas à
‫le faire à chaque fois.
‫Et dans une section future, lorsque nous parlerons de Docker Compose, vous verrez comme cela devient
‫encore plus facile, car Compose créera automatiquement de nouveaux réseaux virtuels à chaque fois que vous créerez une application.
‫La communication entre vos conteneurs devient encore plus facile.
‫Pour récapituler rapidement, nous avons expliqué dans cet exposé que les conteneurs ne pouvaient pas, ou ne devraient pas, compter sur les
‫adresses IP pour se parler, car ils ne pouvaient tout simplement pas compter.
‫Et ce DNS est vraiment la norme en ce qui concerne la manière dont nous effectuons l'intercommunication entre des
‫conteneurs sur le même hôte et entre des hôtes.
‫J'ai donc recommandé de toujours créer des réseaux personnalisés, car c'est plus simple que de faire un
‫- lien tout le temps.
‫Et puis je vous ai donné un aperçu de Docker Compose et de la façon dont cela facilitera tout cela, en
‫particulier de la mise en réseau.