Écrire un fichier Compose
Apprenez la syntaxe YAML de `docker-compose.yml` pour définir les services, les réseaux et les volumes.
Écrire un fichier Compose est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.
Fichier Compose : le plan
Bienvenue dans la rédaction de fichiers Docker Compose ! Le fichier docker-compose.yml est votre plan pour définir et exécuter des applications Docker composées de plusieurs conteneurs.
Il utilise la syntaxe YAML pour configurer les services, les réseaux et les volumes de votre application dans un seul fichier.

YAML : rappel rapide
Les fichiers Docker Compose sont écrits en YAML (YAML Ain't Markup Language). Il s'agit d'un standard de sérialisation des données conçu pour être lisible par les humains.
- Paires clé-valeur :
key: value - Listes : les éléments commencent par un trait d'union (
- item) - Indentation : essentielle pour définir la structure et la hiérarchie. Utilisez des espaces, pas des tabulations !
La clé `version`
Chaque fichier docker-compose.yml commence par une clé version. Celle-ci indique la version du format du fichier Compose et aide Docker Compose à comprendre comment interpréter votre fichier.
Pour la plupart des applications modernes, la version '3.8' ou une version '3.x' similaire est recommandée.
version: '3.8'Définir `services`
La section services est l'endroit où vous définissez les conteneurs individuels (services) qui composent votre application. Chaque service représente un composant, comme un serveur Web ou une base de données.
Sous services, vous répertoriez chaque service en lui attribuant le nom de votre choix.
version: '3.8'
services:
web:
# Service configuration goes here
database:
# Another service's configuration`image` et `ports` d'un service
Dans la définition d'un service, image indique l'image Docker à utiliser (par exemple, nginx:latest). La clé ports fait correspondre les ports du conteneur à ceux de l'hôte, ce qui permet un accès externe.
"80:80"fait correspondre le port 80 de l'hôte au port 80 du conteneur.
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"`volumes` d'un service
La clé volumes d'un service vous permet de monter des chemins de votre machine hôte dans le conteneur ou d'utiliser des volumes nommés pour le stockage persistant.
Cet exemple monte le répertoire local ./app dans /usr/src/app à l'intérieur du conteneur.
version: '3.8'
services:
app:
image: my-node-app
volumes:
- ./app:/usr/src/appVariables `environment` du service
Utilisez la clé environment pour transmettre des variables d’environnement aux conteneurs de votre service. Cela est essentiel pour les configurations susceptibles de changer d’un environnement à l’autre (par exemple, les chaînes de connexion à la base de données).
Les variables peuvent être indiquées sous forme de paires clé-valeur ou sous forme de liste.
version: '3.8'
services:
backend:
image: my-api
environment:
- DATABASE_URL=postgres://user:pass@host:5432/db
- NODE_ENV=development`networks` et `volumes` de niveau supérieur
En plus de les définir au sein des services, vous pouvez également déclarer des volumes nommés et des réseaux personnalisés au niveau supérieur de votre fichier docker-compose.yml.
Cela permet d’organiser et de réutiliser plus facilement les définitions assurant la persistance des données et la communication entre les conteneurs.
version: '3.8'
services:
# ... service definitions ...
networks:
my_app_network:
# custom network configuration
volumes:
db_data:
# named volume configurationTout mettre en place
Voici un petit exemple qui combine ce que nous avons appris. Il définit un service web et un service de base de données, en utilisant une image, des ports et un volume nommé.
Remarquez comment l’indentation crée la structure.
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- web_content:/usr/share/nginx/html
db:
image: postgres:13
environment:
- POSTGRES_DB=mydb
- POSTGRES_USER=user
- POSTGRES_PASSWORD=secret
volumes:
web_content:
db_data:Vérification du fichier Compose
Lequel des extraits YAML suivants définit correctement un service Docker Compose nommé « api », qui utilise l’image « myapi:1.0 » et expose le port 3000 du conteneur sur le port 8080 de l’hôte ?
Récapitulatif : éléments essentiels d’un fichier Compose
Excellent travail ! Vous avez appris les principes fondamentaux de la rédaction d’un fichier docker-compose.yml.
- Il commence par une
version. servicesdéfinit les composants de votre application.- Chaque service utilise une
image, peut exposer desports, utiliser desvolumespour la persistance et définir des variablesenvironment. - Les
networksetvolumesde niveau supérieur permettent une configuration avancée.
La maîtrise de cette structure YAML est essentielle pour orchestrer des applications composées de plusieurs conteneurs !
Questions Fréquemment Posées
La leçon « Écrire un fichier Compose » est-elle gratuite ?
Oui — le texte complet de « Écrire un fichier Compose » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Écrire un fichier Compose » ?
Apprenez la syntaxe YAML de `docker-compose.yml` pour définir les services, les réseaux et les volumes. Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?
Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Écrire un fichier Compose » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?
Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Qu’est-ce que Docker Compose ?
- Écrire un fichier Compose
- Déployer des applications multiservices
- Variables d’environnement et fichiers .env