DOCKER - 16 Réseau et DNS
Les conteneurs Docker sont éphémères : leurs adresses IP changent constamment. Vous ne pouvez donc pas compter sur les IP statiques pour la communication inter-conteneurs. Docker résout ce problème avec un système DNS intégré : les conteneurs se découvrent par nom, pas par IP. Les noms de conteneurs sont stables et prédictibles.
Sur le réseau bridge par défaut, le DNS entre conteneurs n'est pas disponible. Vous devez utiliser l'option obsolète --link pour créer manuellement des liens. La meilleure pratique est de créer un réseau personnalisé où le DNS fonctionne automatiquement pour tous les conteneurs :
docker network create myapp
docker run --network myapp --name api myapp-image
docker run --network myapp --name db postgres
# À l'intérieur de api : ping db fonctionne,
# l'adresse IP de db est résolue automatiquement
Vous pouvez aussi assigner plusieurs alias DNS à un conteneur lors de son lancement pour faciliter la découverte de service. Pour tester la résolution DNS, entrez dans un conteneur et vérifiez :
docker exec -it api nslookup db
Cette approche par nom de conteneur élimine la complexité de configuration d'adresses IP statiques et rend les applications Docker portables et flexibles. C'est la fondation de l'orchestration moderne.