Définition d'applications multi-conteneurs avec Compose
Structure du fichier Compose
Le fichier Compose est écrit en format YAML et est généralement nommé docker-compose.yml
. Il se compose de plusieurs éléments clés :
- Version : Spécifie la version du format du fichier Compose.
- Services : Définit les différents services (conteneurs) qui composent votre application.
- Réseaux : Configure les réseaux que vos services utiliseront pour communiquer entre eux.
- Volumes : Définit les volumes que vos services utiliseront pour la persistance des données.
Voici un exemple de fichier Compose qui définit un service web et un service de base de données :
version: "3"
services:
web:
image: nginx:latest
ports:
- "8080:80"
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
Définition des services
Chaque service dans le fichier Compose représente un conteneur Docker. Vous pouvez spécifier diverses options de configuration pour chaque service, telles que l'image Docker à utiliser, les variables d'environnement, les ports, les volumes et les dépendances envers d'autres services.
Par exemple, le service web
dans l'exemple précédent utilise l'image nginx:latest
, expose le port 80 du conteneur au port 8080 de l'hôte et dépend du service db
.
Réseaux et volumes
Compose crée automatiquement un réseau par défaut pour votre application, permettant à vos services de communiquer entre eux. Vous pouvez également définir des réseaux et des volumes personnalisés pour contrôler la connectivité et la persistance des données de votre application.
Dans l'exemple, le service db
utilise un volume nommé db-data
pour la persistance de ses données, garantissant que les données ne sont pas perdues lorsque le conteneur est arrêté ou supprimé.
Mise à l'échelle et déploiement
Une fois que vous avez défini votre fichier Compose, vous pouvez utiliser l'outil de ligne de commande docker-compose
pour gérer votre application. Par exemple, vous pouvez utiliser docker-compose up
pour démarrer votre application, docker-compose scale web=3
pour mettre à l'échelle le service web à trois instances et docker-compose down
pour arrêter et supprimer votre application.
Dans la section suivante, nous explorerons plus en détail comment déployer et gérer vos applications Compose.