Partager 1 conteneur BDD avec plusieurs autres conteneur Comment partager un conteneur de BDD avec les autres ? Pour ce faire nous allons mettre en place un nouveau réseau (Network) et connecter les conteneurs entre eux via ce nouveau réseau. L'architecture pourra être schématisé de la manière suivante : 1/ Créer le nouveau Network La création d'un nouveau réseau avec Docker est très simple. Il suffit d'exécuter la commande suivante :  sudo docker network create "" Nous pouvons vérifier la création du réseau avec la commande suivante :  sudo docker network list Ce qui donne la sortie :  user@servername:~$ sudo docker network list NETWORK ID NAME DRIVER SCOPE 29f7ba793880 bddnet bridge local 21bac3cf5868 bridge bridge local 035d5327faeb host host local 041e2c568093 none null local Nous pouvons voir que le Network bddnet existe bien.  2/ Créer le conteneur BDD Après avoir créé le réseau, nous allons maintenant créer le conteneur de la base de données et le connecter a ce nouveau réseau.  Nous pouvons créer un conteneur avec la commande suivante :  Un point important dans cet étape, c'est de donner un nom au conteneur de BDD, il sera plus facile par la suite de le lier aux autres conteneurs. sudo docker run -d --name postgres --network bddnet -e POSTGRES_USER="postgres" Ou via un docker compose :  version: '3.8' services: db: image: postgres:14-alpine container_name: postgres # Nom du conteneur de BDD restart: always networks: - bddnet # On lie ce conteneur au nouveau réseau ports: - '5432:5432' volumes: - /var/lib/postgres/data:/var/lib/postgresql/data environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=passwordPostgres volumes: postgres-data: networks: bddnet: # On précise que le réseau déclaré au dessus existe déjà external: true 3/ Connecter les autres conteneurs  De la même manière que la création du conteneur de base de données nous allons créer des conteneur et les connecter sur le nouveau réseau. sudo docker run -d --name website --network bddnet -p 80:8080 -e URL_SITE="http://exemple.com" -e DB_HOST="postgres" website L'étape importante dans la création d'un conteneur utilisant le service d'un autre conteneur est : qu'il faut mettre le nom du conteneur de destination dans la variable d'environnement host.  Cet étape est plus visuel dans un docker compose :  version: '3' services: web: image: website:latest container_name: website networks: - bddnet # On lie ce conteneur au nouveau réseau environment: DB_TYPE: postgres DB_HOST: postgres # Nom du conteneur de BDD DB_PORT: 5432 DB_USER: user DB_PASS: userPwd DB_NAME: bddname restart: unless-stopped ports: - "80:80" networks: bddnet: # On précise que ce réseau existe déjà external: true Il suffit de répéter cet étape a chaque fois que l'on souhaite connecter un conteneur au conteneur de BDD.