Retour au cours

Leçon 14 : Fondamentaux de la Mise en Réseau Docker

Docker, de zéro à héros : Le cours complet sur la conteneurisation pour débutants

Leçon 14 : Fondamentaux de la Mise en Réseau Docker

Les conteneurs doivent communiquer avec le monde extérieur et, plus important encore, entre eux (par exemple, une application web qui parle à une base de données).

Isolation via les Pilotes de Réseau (Network Drivers)

Docker utilise des Network Drivers pour créer des réseaux isolés pour les conteneurs. Les trois principaux pilotes sont :

  1. Bridge (Par Défaut) : Le réseau le plus courant. Les conteneurs attachés au même réseau bridge peuvent communiquer entre eux en utilisant leurs adresses IP internes ou leurs noms de conteneurs.
  2. Host : Supprime l'isolation réseau ; le conteneur partage directement la pile réseau de la machine hôte (à utiliser avec prudence).
  3. None : Désactive complètement la mise en réseau pour le conteneur.

1. Inspection des Réseaux par Défaut

Vérifiez les réseaux par défaut disponibles sur votre machine :

bash docker network ls

Vous verrez généralement bridge, host et none.

2. Création de Réseaux Bridge Personnalisés

Bien que les conteneurs se connectent automatiquement au réseau bridge par défaut, les conteneurs sur le bridge par défaut ne peuvent communiquer que par IP, ce qui est fastidieux. Pour une meilleure découverte de services (en utilisant les noms de conteneurs), nous créons un réseau bridge personnalisé.

bash docker network create my_custom_network

Inspecter le réseau nouvellement créé

docker network inspect my_custom_network

3. Connexion des Conteneurs au Réseau

Utilisez le drapeau --network lors de l'exécution des conteneurs pour les attacher à votre réseau personnalisé.

Exemple : Exécuter deux conteneurs sur le réseau personnalisé

Conteneur 1 (Base de Données) :

bash docker run -d --name db_service --network my_custom_network postgres:15

Conteneur 2 (Application) :

bash docker run -d --name app_service --network my_custom_network python:3

Les conteneurs dans my_custom_network peuvent désormais se joindre simplement en utilisant le nom du conteneur comme nom d'hôte (par exemple, app_service peut pinger db_service). C'est la base des applications multi-conteneurs.