Notions de base de Docker Compose
Introduction à Docker Compose
Docker Compose est un outil puissant d'orchestration de conteneurs, permettant aux développeurs de définir et de gérer des applications multi-conteneurs à l'aide d'un seul fichier de configuration. Il simplifie le processus d'exécution d'architectures d'applications complexes en vous permettant de décrire les services, les réseaux et les volumes de manière déclarative.
Concepts et architecture de base
Docker Compose utilise des fichiers YAML pour configurer les services d'application, offrant une approche rationalisée de la configuration des services de conteneurs. Le fichier de configuration principal est généralement nommé docker-compose.yml.
graph TD
A[Docker Compose] --> B[Configuration YAML]
B --> C[Définitions des services]
B --> D[Paramètres du réseau]
B --> E[Mappages de volumes]
Structure du fichier de configuration
Une configuration Docker Compose typique inclut des éléments clés :
| Élément |
Description |
Exemple |
| version |
Version du fichier Compose |
version: '3.8' |
| services |
Définitions des conteneurs |
Plusieurs configurations de services |
| réseaux |
Paramètres de réseau personnalisés |
Réseaux Bridge, hôte |
| volumes |
Stockage de données persistant |
Volumes nommés ou montés sur l'hôte |
Exemple pratique : Configuration d'une application web
Voici une configuration Docker Compose complète pour une application web typique :
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./website:/usr/share/nginx/html
database:
image: postgres:13
environment:
POSTGRES_PASSWORD: secretpassword
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Opérations en ligne de commande
Commandes Docker Compose essentielles pour gérer des applications multi-conteneurs :
## Démarrer les services définis dans docker-compose.yml
docker-compose up -d
## Arrêter et supprimer les conteneurs
docker-compose down
## Afficher les conteneurs en cours d'exécution
docker-compose ps
## Afficher les journaux des services
docker-compose logs web
Gestion des dépendances entre services
Docker Compose permet de définir des dépendances entre les services pour contrôler la séquence de démarrage :
services:
web:
depends_on:
- database
restart: on-failure
Cette configuration garantit que le service de base de données démarre avant le service web, avec des capacités de redémarrage automatique.