DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesCréer ses images Docker : Dockerfile, volumes et réseaux04 - Configurer les réseaux Docker

Détails

  • 20 minutes
  • Intermédiaire

Objectifs

  • Créer un réseau bridge personnalisé avec docker network create
  • Faire communiquer des conteneurs par leur nom sur un réseau bridge custom
  • Comprendre la différence entre le réseau bridge par défaut et un réseau custom
  • Utiliser --network host et docker network connect
Module Créer ses images Docker : Dockerfile, volumes et réseaux

Exercice 04 : Configurer les réseaux Docker

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Créer un réseau bridge personnalisé avec docker network create
  • ✅ Faire communiquer deux conteneurs par leur nom sur un réseau custom
  • ✅ Expliquer pourquoi la résolution DNS fonctionne sur un réseau custom mais pas sur bridge par défaut
  • ✅ Connecter un conteneur à plusieurs réseaux avec docker network connect
  • ✅ Inspecter un réseau avec docker network inspect

Durée estimée : 20 min | Difficulté : ⭐⭐⭐☆☆


📖 Contexte

Docker propose plusieurs types de réseaux. Le réseau bridge par défaut permet aux conteneurs de se parler via leurs adresses IP, mais pas par leur nom. Un réseau bridge personnalisé active la résolution DNS automatique : les conteneurs se trouvent par leur nom. C'est le comportement attendu dans toute architecture multi-conteneurs.


📋 Énoncé

Créez un réseau bridge personnalisé, lancez deux conteneurs dessus, et prouvez qu'ils communiquent par leur nom. Comparez ensuite avec le comportement du réseau bridge par défaut.


🧭 Déroulement

Tâche 1 : Créer et inspecter un réseau bridge custom

Créez un réseau Docker nommé mon-reseau de type bridge. Affichez ses détails pour relever le sous-réseau (subnet) et la passerelle (gateway) attribués automatiquement.

Indice : docker network create <nom> crée un réseau bridge par défaut. docker network inspect <nom> affiche les détails en JSON.

Vérification : docker network ls liste mon-reseau avec le driver bridge.


Tâche 2 : Lancer deux conteneurs sur le réseau custom

Lancez deux conteneurs Alpine en arrière-plan sur mon-reseau :

  • conteneur-a : dort indéfiniment (sleep 3600)
  • conteneur-b : dort indéfiniment (sleep 3600)

Indice : --network mon-reseau --name <nom> attache le conteneur au réseau et lui assigne un nom DNS résolvable.

Vérification : docker network inspect mon-reseau liste les deux conteneurs dans la section Containers.


Tâche 3 : Communication par nom de conteneur

Depuis conteneur-a, pinguez conteneur-b par son nom.

Indice : docker exec <conteneur> ping -c 3 <nom-cible> exécute une commande dans un conteneur en cours d'exécution.

Vérification : Les 3 paquets ICMP reçoivent une réponse (0% packet loss). L'IP résolue appartient au sous-réseau de mon-reseau.


Tâche 4 : Comparer avec le réseau bridge par défaut

Lancez deux nouveaux conteneurs Alpine sans spécifier de réseau (ils rejoignent le réseau bridge par défaut). Tentez de pinger l'un depuis l'autre par nom.

Indice : Sur le réseau bridge par défaut, Docker ne fournit pas de résolution DNS par nom de conteneur. Seule la communication par IP fonctionne.

Vérification : Le ping par nom échoue avec bad address ou Name does not resolve. Le ping par IP (docker inspect) fonctionne.


Tâche 5 : Connecter un conteneur à un second réseau

Créez un second réseau reseau-admin. Connectez conteneur-a à ce nouveau réseau sans le redémarrer.

Indice : docker network connect <reseau> <conteneur> attache un conteneur à un réseau existant à chaud.

Vérification : docker inspect conteneur-a montre deux entrées sous Networks : mon-reseau et reseau-admin.


🗂️ Mini-Projet

Construisez l'architecture réseau et validez chaque checkpoint :

bash
docker network create mon-reseau
docker network ls

docker run -d --name conteneur-a --network mon-reseau alpine sleep 3600
docker run -d --name conteneur-b --network mon-reseau alpine sleep 3600

docker exec conteneur-a ping -c 3 conteneur-b

# Test réseau bridge par défaut
docker run -d --name defaut-a alpine sleep 3600
docker run -d --name defaut-b alpine sleep 3600
docker exec defaut-a ping -c 1 defaut-b  # doit échouer par nom

docker network create reseau-admin
docker network connect reseau-admin conteneur-a
docker inspect conteneur-a | grep -A 5 '"Networks"'

# Nettoyage
docker stop conteneur-a conteneur-b defaut-a defaut-b
docker rm conteneur-a conteneur-b defaut-a defaut-b
docker network rm mon-reseau reseau-admin

Checkpoints de validation :

  • docker network create mon-reseau crée le réseau sans erreur
  • docker network inspect mon-reseau affiche subnet et gateway
  • ping -c 3 conteneur-b depuis conteneur-a : 0% packet loss
  • Ping par nom sur le réseau bridge par défaut échoue
  • docker network connect attache conteneur-a à reseau-admin sans redémarrage
  • docker inspect conteneur-a liste deux réseaux

Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement
  • Tâche 1 : Créer et inspecter un réseau bridge custom
  • Tâche 2 : Lancer deux conteneurs sur le réseau custom
  • Tâche 3 : Communication par nom de conteneur
  • Tâche 4 : Comparer avec le réseau bridge par défaut
  • Tâche 5 : Connecter un conteneur à un second réseau
  • 🗂️ Mini-Projet