Quoi de neuf dans Docker Compose v2 ? –
Docker Compose est un outil extrêmement populaire pour travailler avec des conteneurs. Alors que l’ordinaire docker
CLI interagit avec un conteneur à la fois, docker-compose
vous permet de contrôler plusieurs conteneurs dans l’ensemble.
Compose existe actuellement en tant que projet autonome distribué indépendamment de Docker. Si vous souhaitez utiliser Compose, vous devrez le télécharger séparément. De nombreux utilisateurs finissent par saisir directement le binaire, car les gestionnaires de packages du système d’exploitation sont souvent à la traîne, même s’ils proposent la dernière version de Docker.
Docker Compose v2 a été annoncé à la DockerCon 2021. Il promet de grands changements à l’expérience Compose en l’intégrant dans le docker
CLI. v2 est également livré avec de nouvelles fonctionnalités pratiques pour vous aider à gérer vos piles de conteneurs.
Sommaire
La nouvelle commande « docker compose »
Docker Compose v2 apporte la fonctionnalité Compose dans Docker lui-même. Vous pourrez utiliser Compose partout où la dernière CLI Docker est installée, aucune étape supplémentaire n’est requise. En dessous, Docker continue d’utiliser les fonctionnalités fournies par le projet Compose.
Existant docker-compose
les commandes doivent être mappées directement sur leur nouveau docker compose
homologues. Dans la plupart des cas, vous pouvez supprimer le tableau de bord sans qu’aucune autre modification ne soit requise. docker compose
prend en charge presque toutes les sous-commandes et indicateurs Compose v1, bien qu’une minorité ne soit pas implémentée.
Compose v2 prendra toujours en charge l’invocation via le docker-compose
binaire. Les scripts de workflow existants doivent continuer à fonctionner, même si vous ne les mettez pas immédiatement à jour pour les utiliser docker compose
. À long terme, il est probable que la plupart des auteurs passeront plutôt au nouveau formulaire.
Expérimenter avec Docker Compose v2
Compose v2 est actuellement en version bêta. Bien qu’il soit encore en développement, le nouveau binaire est déjà livré avec Docker Desktop pour Windows et Mac. Desktop v3.4 a ajouté la prise en charge du docker compose
commandes, il est donc probable que vous puissiez déjà l’utiliser aujourd’hui. Les packages Linux seront mis à jour plus tard dans l’année ; un script d’installation manuelle est disponible en attendant.
le docker-compose
La commande peut actuellement appeler v1 ou v2, par défaut à v1. L’option est automatiquement activée pour un sous-ensemble d’utilisateurs ; il finira par lancer la v2 pour tous.
Vous pouvez basculer manuellement docker-compose
entre v1 et v2 en exécutant docker-compose disable-v2
ou alors docker-compose enable-v2
. Cela vous permet de maintenir la compatibilité avec tous les fichiers Compose existants qui ne fonctionnent pas avec la v2. docker compose
les commandes utiliseront toujours la v2.
Modifications des spécifications
L’apport de la fonctionnalité Compose à la CLI Docker a nécessité des modifications de la spécification Compose. Cela fait maintenant la distinction entre les implémentations de commandes et les docker-compose.yml
format YAML.
L’approche révisée offre de nouvelles possibilités d’intégrer des fonctionnalités supplémentaires. Les implémentations expérimentales peuvent être fournies plus rapidement et l’équipe Compose est mieux équipée pour ajouter des propositions de la communauté. La CLI est plus découplée du format de fichier YAML, donc des implémentations alternatives (comme docker compose
) sont une possibilité.
Au-delà de la CLI, l’existence de la spécification Composer permet aux fournisseurs de cloud d’implémenter également la fonctionnalité Compose. Vous pouvez maintenant courir docker compose up
dans un contexte Docker basé sur le cloud pour lancer votre application en production. Docker est livré avec une prise en charge intégrée des environnements Amazon ECS et Microsoft ACI.
En interne, Compose v2 utilise Buildkit par défaut pour des builds plus rapides. Les performances globales devraient être plus rapides car davantage de tâches s’exécutent en parallèle, ce qui réduit les temps de traitement.
Nouvelles fonctionnalités de la v2
Le passage de docker-compose
à docker compose
n’est pas le seul changement dans la v2. Il existe également de nouvelles fonctionnalités qui affectent la façon dont vous interagissez avec vos piles de conteneurs.
Une limitation de Compose v1 est son approche des noms de projet. Quand tu cours docker-compose up -d
, Compose ajoute le nom du projet au nom de service de chaque conteneur. Cela garantit que tous les conteneurs sont regroupés.
v1 déduit le nom du projet du nom de votre répertoire de travail. Vous pouvez choisir manuellement un nom différent en définissant le COMPOSE_PROJECT_NAME
variable d’environnement.
v2 simplifie cela en ajoutant un indicateur CLI pour définir le nom du projet. Ajouter --project-name
ou alors -p
d’ignorer le nom du répertoire de travail, sans altérer l’environnement. La définition manuelle du nom du projet vous permet de combiner des conteneurs de plusieurs répertoires de travail en une seule pile ou de démarrer plusieurs instances d’une pile de conteneurs.
Une autre nouvelle fonctionnalité v2 vous permet de répertorier toutes les piles Compose sur votre système. le docker compose ls
La commande fournit un tableau des noms de projets et de leur statut (en cours d’exécution ou arrêté). Cela complète le docker compose ps
commande qui donne les statuts des conteneurs dans une pile.
Compose v2 ajoute également la prise en charge de docker compose cp
. Cette commande fonctionne de la même manière que docker cp
et vous permet de copier des fichiers dans et hors de vos conteneurs :
docker cp my-container local-file.txt /path/to/container/file.txt
Résumé
Docker Compose v2 est une mise à niveau substantielle qui améliore la commodité de l’outil de gestion des conteneurs. L’intégration de Compose dans la CLI principale de Docker signifie qu’elle est disponible partout où se trouve Docker. Cela le rend plus accessible et plus facile à utiliser.
Compose v2 apporte également des commandes utilitaires supplémentaires pour faciliter le travail avec différentes piles et conteneurs. Vous bénéficiez d’une meilleure visibilité sur ce qui s’exécute sur votre système. Bien qu’il soit encore en version bêta au moment de la rédaction, les utilisateurs Windows et Mac peuvent utiliser la v2 aujourd’hui, tandis que les utilisateurs Linux peuvent télécharger la dernière version depuis GitHub.