Créer le réseau Docker
Créer le réseau avant d’y connecter le deuxième service.
Dans ce chapitre : 4 étapes et 13 preuves de validation.
Étape 51 — Comprendre le réseau implicite actuel
Section intitulée « Étape 51 — Comprendre le réseau implicite actuel »Objectif. Tu verras ce que Compose fait déjà et ce que le sujet exige en plus.
État du projet avant cette étape. MariaDB tourne seule. Aucune section networks explicite n’existe.
Comprendre le changement
Section intitulée « Comprendre le changement »Compose crée souvent un réseau default implicite. Inception exige néanmoins une ligne de réseau explicite et interdit le réseau hôte ainsi que les links.
Faire une seule chose
Section intitulée « Faire une seule chose »Affiche les réseaux actuels. Repère le réseau default du projet sans le considérer comme la configuration finale.
docker network ls
docker inspect "$(docker compose -f srcs/docker-compose.yml ps -q mariadb)" --format '{{json .NetworkSettings.Networks}}'Ce que fait chaque partie
- network ls liste les objets réseau Docker.
- inspect montre les réseaux du container MariaDB.
MariaDB appartient probablement au réseau default créé implicitement par Compose.
Si cela échoue
Aucun réseau dans inspect signifie que le container n’est plus géré correctement ; vérifie son statut.
Prouver que c’est correct
Section intitulée « Prouver que c’est correct »Question de soutenance — Pourquoi utiliser mariadb plutôt qu’une IP ?
Le DNS Docker résout le nom stable du service même si l’adresse du container change.
Étape 52 — Déclarer le réseau inception
Section intitulée « Étape 52 — Déclarer le réseau inception »Objectif. Compose connaîtra le réseau privé, sans encore y attacher MariaDB.
État du projet avant cette étape. Le fichier ne contient pas de section networks globale.
Comprendre le changement
Section intitulée « Comprendre le changement »Un réseau bridge relie des containers sur le même hôte Docker tout en restant séparé du réseau de la VM. name donne un nom inspectable stable.
Faire une seule chose
Section intitulée « Faire une seule chose »Ajoute uniquement la déclaration globale au même niveau que services et volumes.
Fichiers ou emplacements concernés
srcs/docker-compose.yml
networks:
inception:
name: inception
driver: bridgeCe que fait chaque partie
- networks est aligné avec services et volumes.
- inception est le nom logique utilisé dans les services.
- name est le nom de l’objet Docker.
- bridge crée un réseau privé sur la VM.
compose config montre le réseau inception.
Si cela échoue
Un networks placé sous volumes devient une propriété invalide ; vérifie l’alignement.
Prouver que c’est correct
Section intitulée « Prouver que c’est correct »Question de soutenance — Pourquoi utiliser mariadb plutôt qu’une IP ?
Le DNS Docker résout le nom stable du service même si l’adresse du container change.
Étape 53 — Connecter MariaDB au réseau
Section intitulée « Étape 53 — Connecter MariaDB au réseau »Objectif. Le premier service quittera le réseau implicite pour rejoindre inception.
État du projet avant cette étape. Le réseau est déclaré mais aucun service ne le référence.
Comprendre le changement
Section intitulée « Comprendre le changement »La section networks du service établit son appartenance. Les futurs services devront citer exactement le même nom.
Faire une seule chose
Section intitulée « Faire une seule chose »Ajoute les deux lignes sous mariadb, sans host, IP fixe ou links.
Fichiers ou emplacements concernés
srcs/docker-compose.yml
networks:
- inceptionCe que fait chaque partie
- networks du service liste ses réseaux.
- inception référence la déclaration globale.
MariaDB référence inception une seule fois.
Si cela échoue
Le nom doit être identique dans le service et la section globale.
Prouver que c’est correct
Section intitulée « Prouver que c’est correct »Question de soutenance — Pourquoi utiliser mariadb plutôt qu’une IP ?
Le DNS Docker résout le nom stable du service même si l’adresse du container change.
Étape 54 — Recréer et inspecter le réseau
Section intitulée « Étape 54 — Recréer et inspecter le réseau »Objectif. Tu prouveras que MariaDB est réellement membre du nouvel objet.
État du projet avant cette étape. Le plan réseau est complet, mais le container courant utilise encore sa configuration précédente.
Comprendre le changement
Section intitulée « Comprendre le changement »down/up recrée le réseau et le container. network inspect montre les membres et leur IP temporaire. Cette IP sert à observer, jamais à configurer.
Faire une seule chose
Section intitulée « Faire une seule chose »Valide, recrée puis inspecte inception. Retient le nom mariadb, pas l’adresse affichée.
docker compose --env-file srcs/.env -f srcs/docker-compose.yml config
docker compose -f srcs/docker-compose.yml down
docker compose --env-file srcs/.env -f srcs/docker-compose.yml up -d
docker network inspect inceptionCe que fait chaque partie
- config valide les deux emplacements networks.
- down retire l’ancien réseau implicite du projet.
- up crée inception et y connecte MariaDB.
- inspect liste les membres.
inception utilise bridge et contient le container MariaDB.
Si cela échoue
Un réseau vide indique que le service ne référence pas inception ou n’est pas Up.
Prouver que c’est correct
Section intitulée « Prouver que c’est correct »Question de soutenance — Pourquoi utiliser mariadb plutôt qu’une IP ?
Le DNS Docker résout le nom stable du service même si l’adresse du container change.