Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Gestion des applications multi-conteneurs | Travail avec Docker Compose
Essentiels de Docker

Gestion des applications multi-conteneurs

Glissez pour afficher le menu

Lors de la création d'applications modernes, il est souvent nécessaire d'exécuter plusieurs services ensemble—tels que des serveurs web, des bases de données et des systèmes de cache—qui doivent communiquer et fonctionner comme un système unifié. Docker Compose simplifie ce processus en vous permettant de définir tous vos services, leurs dépendances et la manière dont ils interagissent, le tout dans un seul fichier docker-compose.yml.

Définition des dépendances et des liens de services dans docker-compose.yml

Dans votre fichier docker-compose.yml, chaque service peut déclarer des dépendances et spécifier comment il se connecte aux autres. La clé depends_on permet de définir l'ordre de démarrage des services, garantissant par exemple qu'une base de données soit opérationnelle avant que votre application tente de s'y connecter. De plus, Compose crée automatiquement un réseau par défaut pour votre projet, facilitant la découverte et la communication entre les services par nom de service.

Supposons que vous ayez une application web qui dépend d'une base de données. Dans votre fichier Compose, définissez les services comme suit :

version: "3.8"
services:
  app:
    build: .
    depends_on:
      - db
  db:
    image: postgres:15

Ici :

  • Le service app dépend de db ;
  • Compose démarre le conteneur de la base de données avant l'application ;
  • Les deux services peuvent se référer l'un à l'autre en utilisant les noms de service comme noms d'hôtes au sein du réseau Compose.

Stratégies pour le passage à l'échelle des services et la mise à jour des configurations

Docker Compose facilite le passage à l'échelle horizontale des services. Si votre application doit gérer plus de trafic, vous pouvez augmenter le nombre de conteneurs pour un service à l'aide de l'option --scale lors de l'exécution de docker compose up.

Pour exécuter trois instances de votre service d'application, utilisez :

docker compose up --scale app=3
  • Cette commande lance trois conteneurs pour le service app ;
  • Tous les conteneurs sont connectés au même réseau et peuvent partager des ressources, telles qu'une base de données ;
  • Lors du passage à l'échelle, assurez-vous que vos services sont sans état ou capables de gérer correctement plusieurs instances.

La mise à jour des configurations dans un environnement Compose est simple :

  • Modifiez votre fichier docker-compose.yml—par exemple, changez les variables d'environnement, les limites de ressources ou les images de service ;
  • Appliquez les modifications avec la commande suivante :
docker compose up -d
  • Cette commande ne recrée que les services dont la configuration a changé, minimisant ainsi les interruptions.

Surveillance et dépannage des applications multi-conteneurs avec Compose

Lors de l'exécution de plusieurs conteneurs, la surveillance et le dépannage sont essentiels. Docker Compose fournit des outils pour observer l'état et les journaux de vos services. Vous pouvez afficher la sortie de tous les conteneurs en temps réel avec :

docker compose logs -f

Cette commande diffuse les journaux de tous les services, ce qui facilite la détection des erreurs ou des problèmes au fur et à mesure qu'ils surviennent. Si vous souhaitez vous concentrer sur un service particulier, indiquez son nom :

docker compose logs db

Pour le dépannage, vous pouvez entrer dans un conteneur en cours d'exécution à l'aide de :

docker compose exec app sh

Cette commande vous donne un shell à l'intérieur du conteneur app, vous permettant d'inspecter les fichiers, d'exécuter des commandes de diagnostic ou de vérifier les variables d'environnement. La surveillance de l'utilisation des ressources et de l'état des conteneurs peut également être effectuée avec les outils Docker standards, tels que docker stats.

1. Quelle clé dans un fichier docker-compose.yml garantit qu'un service démarre avant un autre ?

2. Comment mettre à l'échelle un service nommé worker à cinq instances avec Docker Compose ?

3. Quelle commande utiliser pour afficher les journaux en direct de tous les services en cours d'exécution dans une application Compose ?

question mark

Quelle clé dans un fichier docker-compose.yml garantit qu'un service démarre avant un autre ?

Sélectionnez la réponse correcte

question mark

Comment mettre à l'échelle un service nommé worker à cinq instances avec Docker Compose ?

Sélectionnez la réponse correcte

question mark

Quelle commande utiliser pour afficher les journaux en direct de tous les services en cours d'exécution dans une application Compose ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 3. Chapitre 3
some-alt