Aller au contenu

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.

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.

Affiche les réseaux actuels. Repère le réseau default du projet sans le considérer comme la configuration finale.

À EXÉCUTER DANSDans la VM · racine du repository
docker network ls
docker inspect "$(docker compose -f srcs/docker-compose.yml ps -q mariadb)" --format '{{json .NetworkSettings.Networks}}'
Ce que fait chaque partie
  1. network ls liste les objets réseau Docker.
  2. inspect montre les réseaux du container MariaDB.
Résultat attendu

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.

Preuves de validation 0 / 3

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

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.

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.

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.

Ajoute uniquement la déclaration globale au même niveau que services et volumes.

Fichiers ou emplacements concernés

  • srcs/docker-compose.yml
À ÉCRIRE DANSFichier srcs/docker-compose.yml · section globale
networks:
  inception:
    name: inception
    driver: bridge
Ce que fait chaque partie
  1. networks est aligné avec services et volumes.
  2. inception est le nom logique utilisé dans les services.
  3. name est le nom de l’objet Docker.
  4. bridge crée un réseau privé sur la VM.
Résultat attendu

compose config montre le réseau inception.

Si cela échoue

Un networks placé sous volumes devient une propriété invalide ; vérifie l’alignement.

Preuves de validation 0 / 3

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

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.

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.

La section networks du service établit son appartenance. Les futurs services devront citer exactement le même nom.

Ajoute les deux lignes sous mariadb, sans host, IP fixe ou links.

Fichiers ou emplacements concernés

  • srcs/docker-compose.yml
À ÉCRIRE DANSFichier srcs/docker-compose.yml · dans le service mariadb
    networks:
      - inception
Ce que fait chaque partie
  1. networks du service liste ses réseaux.
  2. inception référence la déclaration globale.
Résultat attendu

MariaDB référence inception une seule fois.

Si cela échoue

Le nom doit être identique dans le service et la section globale.

Preuves de validation 0 / 3

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

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.

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.

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.

Valide, recrée puis inspecte inception. Retient le nom mariadb, pas l’adresse affichée.

À EXÉCUTER DANSDans la VM · racine du repository
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 inception
Ce que fait chaque partie
  1. config valide les deux emplacements networks.
  2. down retire l’ancien réseau implicite du projet.
  3. up crée inception et y connecte MariaDB.
  4. inspect liste les membres.
Résultat attendu

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.

Preuves de validation 0 / 4

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

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.