Comment mettre à niveau vers Docker Compose v2
Après presque un an en version bêta, Docker Compose v2 est généralement disponible en tant que version stable de l’outil de gestion de conteneurs. La plupart des utilisateurs devraient pouvoir effectuer le changement aujourd’hui. Dans ce guide, nous vous montrerons comment préparer et appliquer votre mise à niveau.
Sommaire
Quoi de neuf dans la v2 ?
Docker Compose v2 apporte les fonctionnalités familières de Compose au quotidien docker CLI. Au lieu d’interagir avec un autre docker-compose binaire, vous utilisez maintenant docker compose. Compose est intégré à Docker.
Vous pouvez remplacer les commandes comme ceci :
$ docker-compose up -d
Avec l’invocation suivante :
$ docker compose up -d
Compose v2 est également livré avec quelques nouvelles fonctionnalités qui améliorent l’expérience utilisateur :
- Vous pouvez utiliser
docker compose cppour copier des fichiers entre votre hôte et les conteneurs. - Les fournisseurs de cloud sont des cibles valables, vous permettant
docker compose uppour déployer des conteneurs sur Amazon ECS ou Microsoft ACI. - Les profils de service sont entièrement pris en charge, ce qui facilite l’inclusion sélective de conteneurs dans une pile.
- Gestion de projet simplifiée : exécutez des commandes sans être dans le même répertoire que votre
docker-compose.ymldossier avecdocker compose --project-name my-project stop. Il y a aussi un nouveaudocker compose lscommande qui répertorie tous vos projets Compose. - Docker Compose est désormais écrit en Go, comme Docker lui-même, au lieu d’être un utilitaire Python distinct. Cela permet à Compose de réutiliser le code de la CLI Docker principale, créant ainsi un comportement plus cohérent.
Incompatibilités avec la v1
Compose v2 est compatible avec v1 dans presque tous les cas d’utilisation. Vous n’avez pas besoin de modifier votre docker-compose.yml fichiers ou apprendre de nouvelles commandes, à l’exception du changement de docker-compose à docker compose. Si vous avez votre propre outillage autour du docker-compose commande, vous pouvez la changer pour appeler docker compose Au lieu.
Alors que la plupart des migrations devraient être simples, Compose v2 introduit quelques changements de rupture qui pourraient avoir un impact sur des cas d’utilisation spécifiques :
- Les conteneurs sont désormais créés avec des traits d’union dans leurs noms au lieu de traits de soulignement. Cela signifie un service appelé
dbau sein de laappprojet va maintenant créer un conteneur appeléapp-dbà la place deapp_db. Cela pourrait casser les scripts qui s’attendent à ce que l’ancien format de nom de conteneur soit utilisé. Le changement peut actuellement être désactivé en incluant le--compatibilitydrapeau avecdocker composecommandes. docker compose buildconstruit avec BuildKit par défaut. BuildKit est le système de création d’images moderne de Docker, capable de créer des versions beaucoup plus rapides. BuildKit est le système de construction recommandé, mais il reste quelques incompatibilités avec le mécanisme de construction hérité qui pourraient causer des problèmes dans certaines circonstances. Vous pouvez désactiver BuildKit en définissant leDOCKER_BUILDKIT=0variable d’environnement avant d’exécuterdocker composecommandes.- Certains indicateurs de commande obsolètes ont été supprimés.
docker compose rm --alln’est pas pris en charge et ledocker compose scalecommande est omise au profit dedocker compose up --scale. Vous devrez modifier tous les scripts qui reposent sur ledocker-composeversions de ces commandes.
Mise à niveau sous Linux
Bien que Compose s’intègre désormais à la CLI Docker, il n’est pas activé par défaut dans Docker Engine. Vous pouvez installer Compose v2 en l’ajoutant en tant que plug-in Docker CLI. Vous devez disposer de Docker version v20.10.13 ou ultérieure.
Mettez à jour vos référentiels de packages et installez docker-compose-plugin:
$ sudo apt update $ sudo apt install docker-compose-plugin
Vérifiez que l’installation a réussi en récupérant la version de Docker Compose :
$ docker compose version Docker Compose version v2.3.3
Vous pouvez désormais supprimer Docker Compose v1, sauf si vous souhaitez le conserver pour assurer la compatibilité avec les scripts hérités. Tous les deux docker-compose (v1) et docker compose (v2) peuvent coexister si vous en avez besoin. Si vous supprimez la v1, elle se trouve normalement sous la forme d’un binaire unique sur /usr/local/bin/docker-compose:
$ sudo rm /usr/local/bin/docker-compose
Vous pouvez maintenant configurer un alias de shell pour rediriger docker-compose à docker compose. Cela vous permettrait de continuer à utiliser des scripts qui attendent Compose v1, en utilisant votre nouvelle installation v2.
$ echo 'alias docker-compose="docker compose"' >> ~/.bashrc $ source ~/.bashrc $ docker-compose version Docker Compose version v2.3.3
Vous êtes maintenant prêt à commencer à gérer vos conteneurs avec Compose v2.
Mise à niveau avec Docker Desktop pour Windows et Mac
Compose v2 est inclus avec les versions 3.4 et ultérieures de Docker Desktop. La v2 est devenue la version par défaut de Compose dans la v4.4.2 ; si vous avez déjà pris la mise à niveau, vous pouvez utiliser docker compose aujourd’hui.

v4.4.2 également des alias docker-compose à docker compose automatiquement. Compose v1 est inaccessible par défaut. Vous pouvez désactiver ce crénelage en exécutant le docker-compose disable-v2 commande ou en décochant la case « Utiliser Docker Compose v2 » dans la page des paramètres de Docker Desktop. La docker-compose La commande reviendra alors à l’utilisation de Compose v1.
Et après?
Compose v1 reste pris en charge pour les problèmes de sécurité et les corrections de bogues de « gravité élevée » au cours des six prochains mois. Ce support prendra fin en octobre 2022. La v1 sera alors considérée comme en fin de vie, son utilisation doit donc être évitée. À ce stade, Docker Desktop sera mis à jour pour seulement prise en charge v2. Vous devrez utiliser docker compose comme le docker-compose le crénelage sera supprimé. Vous devrez rester sur une version plus ancienne si vous avez toujours besoin de la v1.
Vous pouvez continuer à utiliser v1 indéfiniment en l’installant en tant que binaire autonome. Vous pouvez les trouver publiés pour Windows, Mac et Linux sur la page des versions GitHub du projet. Bien que ces binaires continueront de fonctionner indéfiniment, la plupart des projets devraient viser à passer à la v2 dans un avenir proche. Cela vous donnera accès à toutes les corrections de bogues, mises à jour de sécurité et nouvelles fonctionnalités des versions modernes de Compose v2.
Sommaire
Docker Compose v2 est désormais la version stable de Docker Compose. Les utilisateurs de Docker Desktop auront été mis à niveau automatiquement. Les installations Linux de Docker Engine sont prises en charge par le nouveau docker-compose-plugin Plug-in CLI.
La prise en charge de Compose v1 se termine dans moins de six mois. Vous devez donc vérifier que vos scripts sont compatibles, puis adopter la v2 dans les semaines à venir. Vous pourrez utiliser Compose dans le docker CLI et bénéficiez des fonctionnalités v2 telles que les profils de service et le docker compose ls commande.
