Ceci est un texte traduit automatiquement qui peut contenir des erreurs !
Docker simplifie le déploiement des applications. Au lieu d’installer et de configurer manuellement des logiciels sur un serveur, vous définissez tout dans des fichiers de configuration. Le résultat est reproductible, portable et rapide à mettre en place.
Qu’est-ce que Docker Compose ?
Avec Docker Compose, vous définissez plusieurs services dans un seul fichier (docker-compose.yml). Chaque service est un conteneur avec sa propre configuration.
services:
web:
image: nginx:latest
ports:
- "80:80"
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
Une commande configure tout :
docker compose up -d
# Starter tjenestene i bakgrunnen.
# Démarre les services en arrière-plan.
Avez-vous besoin de déplacer le service vers un autre serveur ? Copiez le fichier et exécutez la même commande. Tout est identique.
Pourquoi s’agit-il d’automatisation ?
Considérez la différence :
| Configuration manuelle | Avec Docker Compose |
|---|---|
| Installer Nginx manuellement | image: nginx:latest |
| Configurer les ports | ports: "80:80" |
| Installer Grafana manuellement | image: grafana/grafana:latest |
| Documenter toutes les étapes | Tout est documenté dans le fichier .yml |
| Répéter tout sur le prochain serveur | docker compose up -d |
Le fichier Docker Compose est la documentation. Il décrit exactement quels services s’exécutent, quels ports ils utilisent et comment ils sont configurés.
Commandes Docker utiles
| Commande | Ce qu’elle fait |
|---|---|
docker compose up -d | Démarre tous les services en arrière-plan |
docker compose down | Arrête et supprime tous les conteneurs |
docker compose logs -f | Suit les logs en temps réel |
docker compose pull | Récupère la dernière version de toutes les images |
docker compose restart | Redémarre tous les services |
docker ps | Affiche les conteneurs en cours d’exécution |
Volumes : Stocker des données en dehors du conteneur
Les conteneurs sont temporaires. Si vous supprimez un conteneur, tout son contenu disparaît. Pour conserver les données, nous utilisons des volumes :
services:
database:
image: postgres:16
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: hemmelig # Mot de passe pour la base de données
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
Voici où les fichiers de base de données sont stockés dans un volume appelé db-data. Même si vous supprimez et recréez le conteneur, les données restent là.
Mise à jour des services
Mettre à jour un service Docker est simple :
# Récupérer la dernière version
docker compose pull
# Redémarrer avec la nouvelle version
docker compose up -d
Comparez cela à la mise à jour manuelle de logiciels installés, où vous pourriez devoir télécharger, configurer et espérer que rien ne se casse.
Exercice 1 - Configurer Nginx avec Docker Compose
Créez un fichier docker-compose.yml qui exécute un serveur web Nginx :
- Créez un nouveau dossier et créez le fichier
docker-compose.yml - Définissez un service avec
image: nginx:latestsur le port 80 - Exécutez
docker compose up -d - Visitez
http://localhostdans votre navigateur
Exercice 2 - Ajouter un service
Étendez le fichier docker-compose.yml de l’exercice 1 avec un service supplémentaire. Par exemple :
- Uptime Kuma sur le port 3001
- Grafana sur le port 3000
Démarrez tout avec docker compose up -d et vérifiez que les deux services s’exécutent simultanément.
Résumé
- Docker Compose vous permet de définir plusieurs services dans un seul fichier
- Le fichier Compose est à la fois une configuration et une documentation
- Volumes stockent les données en dehors du conteneur afin qu’elles survivent aux redémarrages
- La mise à jour est
docker compose pull+docker compose up -d - Docker facilite le déplacement des services entre les serveurs