GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Qu'est-ce que Docker Compose

Présentation

Développer des applications à l'aide de Docker peut devenir difficile lorsque l'on jongle avec plusieurs services et conteneurs. Découvrez Docker Compose, l'outil qui vous aidera à exécuter des environnements d'application multi-conteneurs.

Dans ce didacticiel, vous apprendrez tout sur Docker Compose, les avantages de l'utilisation de cet outil, ses cas d'utilisation et ses fonctionnalités.

Qu'est-ce que Docker Compose ?

Une application peut être composée de plusieurs conteneurs exécutant différents services. Comme il peut être fastidieux de démarrer et de gérer manuellement les conteneurs, Docker a créé un outil utile qui permet d'accélérer le processus :Docker Compose.

Docker Compose est un logiciel utilisé pour définir et exécuter des applications Docker multi-conteneurs. Il peut gérer plusieurs conteneurs simultanément dans l'environnement de production, de préproduction, de développement, de test et de CI. Par conséquent, utilisez Docker Compose pour gérer l'ensemble du cycle de vie du développement logiciel (SDLC).

Docker Compose fonctionne en appliquant des règles définies dans un docker-compose.yaml dossier. Le fichier YAML configure les services de l'application et inclut des règles spécifiant comment vous souhaitez qu'ils s'exécutent. Avec le fichier en place, vous pouvez démarrer, arrêter ou reconstruire tous les services à l'aide d'une seule commande. De plus, vous pouvez vérifier l'état d'un service, afficher les sorties du journal et exécuter des commandes ponctuelles.

L'installation de Docker Compose est simple. Pour obtenir des instructions détaillées, consultez :

Comment installer Docker Compose sur Ubuntu 18.04Comment installer Docker Compose sur CentOS 7Comment installer Docker Compose sur Ubuntu 20.04

Cas d'utilisation de Docker Compose

Les cas d'utilisation courants de Docker Compose incluent :

  • Environnements de test automatisés . Compose prend en charge les tests automatisés, qui sont une partie essentielle de CI/CD car ils peuvent facilement créer et détruire l'environnement de test requis. Les développeurs peuvent définir et configurer l'environnement nécessaire à l'exécution de tests automatisés de bout en bout à l'aide du fichier Docker Compose approprié.
  • Déploiements sur un seul hôte . Dans Docker Compose, les conteneurs sont conçus pour s'exécuter sur un seul hôte, car ils se sont traditionnellement concentrés sur les workflows de développement et de test.
  • Environnements de développement . Compose est un moyen rapide et simple de démarrer des projets car il peut rapidement créer de nouveaux environnements de développement isolés. Le logiciel documente et configure toutes les dépendances de service de l'application (y compris les bases de données, les caches, les API de services Web, etc.). Il vous permet de créer et de démarrer un ou plusieurs conteneurs pour chaque dépendance à l'aide d'une seule commande.

Avantages de Docker Compose

Voici quelques-uns des principaux avantages de l'utilisation de Docker Compose :

  • Configuration simple et rapide. Grâce aux scripts YAML et aux variables d'environnement, vous pouvez facilement configurer ou modifier les services applicatifs.
  • Sécurisé communication interne. Compose crée un réseau pour tous les services à partager. Cela ajoute une couche de sécurité supplémentaire pour l'application puisque les services ne sont pas accessibles de l'extérieur.
  • Portabilité et prise en charge CI/CD. Étant donné que tous les services sont définis dans le fichier docker-compose, les développeurs peuvent facilement accéder et partager l'ensemble de la configuration. En extrayant le fichier YAML et le code source, ils peuvent lancer l'environnement en quelques minutes. Cela contribue à la mise en place et à l'activation d'un pipeline CI/CD efficace.
  • Utilisation efficace des ressources. Docker Compose vous permet d'héberger plusieurs environnements isolés sur un seul hôte. Tout exécuter sur un seul matériel vous permet d'économiser beaucoup de ressources. Ses fonctionnalités qui lui permettent de mettre en cache une configuration et de réutiliser des conteneurs existants contribuent également à l'efficacité des ressources.

Fonctionnalités de Docker Compose

Il existe plusieurs fonctionnalités importantes de Docker Compose qui offrent les avantages mentionnés ci-dessus.

Hébergement de plusieurs environnements isolés sur un seul hôte

Compose maintient les environnements isolés les uns des autres sur un seul hôte en utilisant des noms de projets.

Par défaut, le nom du projet est le nom de base du répertoire du projet, tandis que le répertoire du projet est le répertoire de base du fichier docker-compose. Vous pouvez modifier les valeurs par défaut :

  • Définir le nom du projet en utilisant le -p l'option de ligne de commande ou le COMPOSE_PROJECT_NAME variable d'environnement.
  • Définir le répertoire du projet en utilisant le --project-directory variable d'environnement.

Vous pouvez utiliser cette fonctionnalité sur un hôte de développement pour exécuter des copies stables de chaque branche de fonctionnalité de votre projet en créant plusieurs copies de l'environnement sous différents noms.

Si vous travaillez sur un serveur CI ou un hôte partagé, vous voulez vous assurer que les builds n'interfèrent pas les uns avec les autres. Pour ce faire, définissez les noms de projet sur des numéros de build uniques.

Variables d'environnement compatibles

Vous pouvez personnaliser les conteneurs pour différents environnements ou utilisateurs en ajoutant des variables d'environnement dans le fichier docker-compose. Cela vous donne plus de flexibilité lors de la configuration des conteneurs avec Compose, car les valeurs des variables ne sont pas codées en dur dans la configuration.

Les valeurs des variables peuvent être définies dans l'environnement shell (à partir duquel vous exécutez docker-compose ) ou dans un fichier .env (stocké dans le répertoire du projet). Par défaut, Docker compose applique les valeurs spécifiées dans le fichier .env. Cependant, les valeurs définies dans l'environnement shell remplacent celles du fichier .env.

Vous pouvez utiliser cette fonctionnalité pour tout, de la fourniture sécurisée de mots de passe à la spécification d'une version du logiciel.

Conservation des données de volume

Une autre grande fonctionnalité de Docker Compose est qu'il enregistre les données utilisées par les services. Par conséquent, vous n'avez pas à vous soucier de perdre des données créées dans des conteneurs. S'il existe des conteneurs d'exécutions précédentes, Compose les trouvera et copiera leurs volumes dans la nouvelle exécution.

Réutilisation des conteneurs existants

Compose ne recrée que les conteneurs qui ont changé depuis la dernière exécution. S'il n'y a pas de changement, il réutilise le conteneur existant.

Cette fonctionnalité repose sur la capacité du logiciel à mettre en cache les configurations de conteneur, ce qui vous permet de configurer vos services plus rapidement.

Commandes de base de Docker Compose

La syntaxe de base pour exécuter les commandes Docker Compose est :

docker-compose [command]

Vous trouverez ci-dessous certaines des commandes Docker Compose les plus élémentaires et leur utilisation.

Commande Description
docker-compose --help afficher l'aide, les instructions d'utilisation et les arguments de la commande docker-compose
docker-compose build recherche tous les services contenant le build: instruction dans le fichier docker-compose.yml et exécutez une docker build pour chacun
docker-compose run exécuter une commande unique sur un service
docker-compose up construire, (re)créer, démarrer et attacher à des conteneurs pour un service
docker-compose -f [command] spécifiez l'emplacement d'un fichier de configuration docker-compose en ajoutant le -f drapeau
docker-compose start démarrer des conteneurs existants pour un service
docker-compose stop arrêter d'exécuter des conteneurs (sans les supprimer)
docker-compose pause mettre en pause l'exécution des conteneurs d'un service
docker-compose unpause réactiver les conteneurs suspendus d'un service
docker-compose down arrêter les conteneurs (et supprimer les conteneurs, les réseaux, les volumes et les images)
docker-compose ps répertorier les conteneurs dans le fichier de configuration docker-compose
docker-compose images répertorier les images utilisées par les conteneurs créés
docker-compose ls répertorier les projets Compose en cours d'exécution

Comment utiliser Docker Compose ?

L'utilisation de Compose comporte trois étapes :

1. La première étape consiste à créer un Dockerfile pour définir l'environnement de l'application. Le fichier construit des images Docker, qui seront utilisées comme bases pour les conteneurs.

2. Ensuite, vous devez définir les services dans un fichier Compose. Créez un nouveau fichier dans le répertoire du projet sous le nom docker-compose.yml et définissez vos services à l'aide de la syntaxe YAML. Un exemple d'un tel fichier comprendrait le contenu suivant :

version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
    links:
      - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

3. Enfin, exécutez et gérez l'application à l'aide de la CLI Docker Compose. Vous pouvez exécuter un seul docker-compose up commande pour démarrer l'intégralité de l'application dans une instance.


Ubuntu
  1. Qu'est-ce que Docker (et les conteneurs Linux ?)

  2. Quoi de neuf dans Docker Compose v2 ?

  3. Un guide rapide pour utiliser Docker Compose

  4. Comment installer Docker Compose sur Ubuntu 18.04

  5. Pourquoi Deis et qu'est-ce que c'est ?

Comment installer Docker Compose sur CentOS 7

Qu'est-ce que Docker Compose et comment l'utiliser ?

Qu'est-ce qu'un manifeste d'image Docker ?

Comment installer Docker Compose sur Ubuntu

Docker File vs Docker Compose :quelle est la différence ?

Que faire si un conteneur Docker se ferme immédiatement