CodeGym /Cours /Docker SELF /Configuration des réseaux et des volumes pour une applica...

Configuration des réseaux et des volumes pour une application

Docker SELF
Niveau 23 , Leçon 4
Disponible

5.1 Configuration des réseaux

Prenons encore un moment pour revoir en détail comment configurer les réseaux et les volumes pour notre application multi-conteneurs. Cela garantira une interaction correcte entre les services et un stockage durable des données.

Les réseaux Docker permettent aux conteneurs d'interagir entre eux. Dans notre application, nous allons utiliser un réseau de type bridge pour connecter le frontend, le backend et la base de données.

Création d'un réseau

Nous avons déjà défini le réseau task-network dans le fichier docker-compose.yml:

Yaml

networks:
  task-network:
    driver: bridge

Où :

  • task-network: le nom du réseau qui sera utilisé pour l'interaction des conteneurs.
  • driver: bridge: le type de réseau. Le réseau bridge est standard pour connecter les conteneurs sur un même hôte.

Connexion des services au réseau

Nous avons connecté tous les services à ce réseau dans le fichier docker-compose.yml. Assurons-nous que chaque service est correctement connecté :

Exemple pour le frontend :

Yaml

frontend:
  build: ./frontend
  ports:
    - "3000:3000"
  networks:
    - task-network

Exemple pour le backend :

Yaml

backend:
  build: ./backend
  ports:
    - "5000:5000"
  depends_on:
    - database
  networks:
    - task-network
  environment:
    - DATABASE_URL=postgresql://taskuser:taskpassword@database:5432/taskdb

Exemple pour la base de données :

Yaml

database:
  image: postgres:13
  environment:
    - POSTGRES_DB=taskdb
    - POSTGRES_USER=taskuser
    - POSTGRES_PASSWORD=taskpassword
  networks:
    - task-network
  volumes:
    - db-data:/var/lib/postgresql/data

5.2 Configuration des volumes

Les volumes Docker permettent de sauvegarder les données des conteneurs sur le système d'hôte, assurant leur stockage à long terme. Dans notre application, on va utiliser un volume pour stocker les données de la base de données PostgreSQL.

Création d'un volume

On a déjà défini le volume db-data dans le fichier compose.yaml :

Yaml

volumes:
  db-data:

Où :

  • db-data: le nom du volume qui sera utilisé pour stocker les données de la base PostgreSQL.

Connexion du volume au service de base de données

On a connecté le volume db-data au service de base de données dans le fichier docker-compose.yml. Assurons-nous que c'est bien fait :

Exemple pour la base de données :

Yaml

database:
  image: postgres:13
  environment:
    - POSTGRES_DB=taskdb
    - POSTGRES_USER=taskuser
    - POSTGRES_PASSWORD=taskpassword
  networks:
    - task-network
  volumes:
    - db-data:/var/lib/postgresql/data  

Où :

  • volumes: définit quels volumes seront connectés au conteneur.
  • db-data:/var/lib/postgresql/data: relie le volume db-data au répertoire /var/lib/postgresql/data à l'intérieur du conteneur. Ce répertoire est utilisé par PostgreSQL pour stocker les données.

5.3 Fichier complet compose.yaml

Pour plus de clarté et de complétude, voici le fichier complet compose.yaml, incluant la configuration des réseaux et des volumes :

Yaml

version: '3'

services:
  frontend:
    build: ./frontend
    ports:
      - "3000:3000"
    networks:
      - task-network
        
  backend:
    build: ./backend
    ports:
      - "5000:5000"
    depends_on:
      - database
    networks:
      - task-network
    environment:
      - DATABASE_URL=postgresql://taskuser:taskpassword@database:5432/taskdb
        
  database:
    image: postgres:13
    environment:
      - POSTGRES_DB=taskdb
      - POSTGRES_USER=taskuser
      - POSTGRES_PASSWORD=taskpassword
    networks:
      - task-network
    volumes:
      - db-data:/var/lib/postgresql/data
        
networks:
  task-network:
    driver: bridge
        
volumes:
  db-data:

Vérification de la configuration des réseaux et des volumes

Après la configuration des réseaux et des volumes, assure-toi que tout est correctement configuré et fonctionne :

  1. 1. Lancement des containers :
    Terminal
    
    docker compose up
                
  2. 2. Vérification du réseau :
    • Utilise la commande docker network ls pour vérifier que le réseau task-network a été créé.
    • Utilise la commande docker network inspect task-network pour t'assurer que tous les containers sont connectés à ce réseau.
  3. 3. Vérification des volumes :
    • Utilise la commande docker volume ls pour vérifier que le volume db-data a été créé.
    • Utilise la commande docker volume inspect db-data pour vérifier les détails du volume.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION