Qu’est-ce que Docker Compose et comment l’utilisez-vous ? – CloudSavvy IT


Docker Compose est un outil que vous pouvez utiliser pour gérer de manière centralisée les déploiements de nombreux conteneurs Docker différents. C’est un outil important pour toute application qui a besoin de plusieurs microservices, car il permet à chaque service d’être facilement dans un conteneur géré séparément.

Que fait Docker Compose ?

Les conteneurs Docker sont utilisés pour exécuter des applications dans un environnement isolé. Il est assez courant de nos jours de voir des déploiements d’applications effectués dans Docker pour les nombreux avantages qu’il apporte. Cependant, ce n’est souvent pas aussi simple que d’exécuter un seul conteneur. Habituellement, vous pouvez avoir de nombreux conteneurs qui se réunissent pour agir comme un service cohérent composé de nombreuses pièces mobiles.

La gestion de tout cela au moment du déploiement est compliquée, donc pour le nettoyer, Docker fournit Docker Composer, un outil de configuration utilisé pour exécuter plusieurs conteneurs à la fois. Vous pouvez définir toute la configuration dans un fichier YAML, puis démarrer tous les conteneurs avec une seule commande.

Plutôt que d’avoir tous vos services dans un grand conteneur, Docker Compose vous permet de les diviser en conteneurs gérables individuellement. C’est à la fois meilleur pour la construction et le déploiement, car vous pouvez tous les gérer dans des bases de code distinctes et n’avez pas besoin de démarrer manuellement chaque conteneur individuel.

L’utilisation de Docker Compose est un processus en trois étapes :

  • Créez les images des composants à l’aide de leurs fichiers Docker ou extrayez-les d’un registre.
  • Définir tous les services composants dans un docker-compose.yml fichier.
  • Exécutez-les tous ensemble en utilisant le docker-compose CLI.

Docker Compose n’est pas un autre type de Dockerfile. Vous devrez toujours créer et publier vos conteneurs Docker à l’aide d’un Dockerfile. Mais, au lieu de les exécuter directement, vous pouvez utiliser Docker Compose pour gérer la configuration d’un déploiement multi-conteneurs.

Comment utilisez-vous Docker Compose ?

La configuration d’un fichier de composition docker se fait dans docker-compose.yml. Vous n’avez pas besoin de le placer à la racine de votre projet comme un Dockerfile. En fait, il peut aller n’importe où, car il ne dépend d’aucun autre code. Cependant, si vous construisez les images localement, elles devront aller dans un dossier de projet avec le code en cours de construction.

Un fichier de configuration Compose ressemblera à ce qui suit. Cette configuration exécute une instance WordPress en utilisant le wordpress conteneur hors du Docker Hub. Cependant, cela dépend d’une base de données MySQL, qui est également créée par Compose.

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: rootpasswordchangeme
       MYSQL_DATABASE: wordpress
       MYSQL_USER: usernamechangeme
       MYSQL_PASSWORD: passwordchangeme

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: usernamechangeme
       WORDPRESS_DB_PASSWORD: passwordchangeme
volumes:
    db_data:

Regardons le format de ce fichier. Tout d’abord, un numéro de version, car la syntaxe peut changer selon la version que vous utilisez.

Ensuite, une liste de services. Le premier s’appelle « db » et utilise le mysql:5.7 conteneur, défini pour toujours redémarrer, et avec des variables d’environnement pour configurer la base de données avec un utilisateur et un mot de passe. Pour conserver les données entre les redémarrages, cette image est configurée avec un volume Docker monté dans le répertoire de données MySQL.

L’autre service est « wordpress », qui dépend du service de base de données, garantissant que Docker s’assurera que la base de données est démarrée avant de s’exécuter. Il expose le port 80 en tant que port 8000 et définit certaines variables d’environnement afin qu’il puisse se connecter à MySQL. Notez que l’hôte de la base de données est défini sur db:3306, qui indique au conteneur WordPress de se connecter au service « db ».

Enfin, les volumes sont définis pour le stockage persistant. En option, vous pouvez définir également un réseau personnalisé pour les conteneurs. Il existe de nombreuses options étendues que vous pouvez configurer, donc si vous cherchez à faire quelque chose de spécifique, vous devriez consulter la documentation pour Docker Composer.

Une fois configuré, le démarrage de ce service est simple. Exécutez simplement docker-compose up, qui extraira tous les conteneurs requis et démarrera vos services.

docker-compose up -d

Et vous devriez voir les services s’exécuter sur le système avec docker ps. Dans ce cas, vous verrez WordPress opérationnel et fonctionner correctement.

EN RELATION: Comment installer Docker et Docker Compose sur Linux

Construire avec Docker Compose

Docker Compose peut également être utilisé dans un projet Dockerfile et peut être configuré pour créer et exécuter une image localement plutôt que de l’extraire du Docker Hub.

Pour cela, il vous suffit d’ajouter un build rubrique sur le service. Vous pouvez définir différents répertoires de contexte, ainsi que différents fichiers Docker pour différentes images.

version: "3.8"
services:
  webapp:
    build:
      context: ./dir
      dockerfile: Dockerfile-alternate
    image: imagename:tag

Dans ce cas, le image: La variable est également définie, mais ici, elle est utilisée pour baliser l’image créée par Docker Compose.



Vous pouvez lire l’article original (en Angais) sur le blogwww.cloudsavvyit.com