Histoire et développement de Docker Compose
Cette page fournit :
- Un bref historique du développement de la CLI Docker Compose
- Une explication claire des versions majeures et formats de fichiers qui composent Compose v1 et Compose v2
- Les principales différences entre Compose V1 et Compose v2
Introduction


L'image précédente montre que la version actuellement supportée de la CLI Docker Compose est Compose v2 qui est définie par la spécification Compose.
Elle fournit également un aperçu rapide des différences dans les formats de fichiers, la syntaxe de ligne de commande et les éléments de niveau supérieur. Ceci est couvert plus en détail dans les sections suivantes.
Versioning de la CLI Docker Compose
La version un du binaire de ligne de commande Docker Compose a été publié pour la première fois en 2014. Il était écrit en Python, et est invoqué avec docker-compose
.
Typiquement, les projets Compose V1 incluent un élément version
de niveau supérieur dans le fichier compose.yaml
, avec des valeurs allant de 2.0
à 3.8
, qui se réfèrent aux formats de fichiers spécifiques.
La version deux du binaire de ligne de commande Docker Compose a été annoncée en 2020, est écrite en Go, et est invoquée avec docker compose
.
Compose v2 ignore l'élément version
de niveau supérieur dans le fichier compose.yaml
.
Versioning du format de fichier Compose
Les CLI Docker Compose sont définies par des formats de fichiers spécifiques.
Trois versions majeures du format de fichier Compose pour Compose V1 ont été publiées :
- Format de fichier Compose 1 avec Compose 1.0.0 en 2014
- Format de fichier Compose 2.x avec Compose 1.6.0 en 2016
- Format de fichier Compose 3.x avec Compose 1.10.0 en 2017
Le format de fichier Compose 1 est substantiellement différent de tous les formats suivants car il manque une clé services
de niveau supérieur.
Son usage est historique et les fichiers écrits dans ce format ne fonctionnent pas avec Compose v2.
Les formats de fichier Compose 2.x et 3.x sont très similaires l'un à l'autre, mais ce dernier a introduit de nombreuses nouvelles options ciblant les déploiements Swarm.
Pour adresser la confusion autour du versioning de la CLI Compose, du versioning du format de fichier Compose, et de la parité des fonctionnalités selon que le mode Swarm était en usage, les formats de fichier 2.x et 3.x ont été fusionnés dans la spécification Compose.
Compose v2 utilise la spécification Compose pour la définition de projet. Contrairement aux formats de fichiers précédents, la spécification Compose est continue et rend l'élément version
de niveau supérieur optionnel. Compose v2 utilise également des spécifications optionnelles -
Deploy,
Develop, et
Build.
Pour faciliter la migration, Compose v2 a une rétrocompatibilité pour certains éléments qui ont été dépréciés ou changés entre les formats de fichier Compose 2.x/3.x et la spécification Compose.