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 cp
pour copier des fichiers entre votre hôte et les conteneurs. - Les fournisseurs de cloud sont des cibles valables, vous permettant
docker compose up
pour 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.yml
dossier avecdocker compose --project-name my-project stop
. Il y a aussi un nouveaudocker compose ls
commande 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é
db
au sein de laapp
projet 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--compatibility
drapeau avecdocker compose
commandes. docker compose build
construit 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=0
variable d’environnement avant d’exécuterdocker compose
commandes.- Certains indicateurs de commande obsolètes ont été supprimés.
docker compose rm --all
n’est pas pris en charge et ledocker compose scale
commande est omise au profit dedocker compose up --scale
. Vous devrez modifier tous les scripts qui reposent sur ledocker-compose
versions 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.