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

0
374

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 nécessitant plusieurs microservices, car il permet à chaque service d'être facilement dans un conteneur géré séparément.

Quoi Docker Compose fonctionne-t-il ?

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 plusieurs conteneurs réunis 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 Compose, un outil de configuration utilisé pour exécuter plusieurs conteneurs à la fois. Vous pouvez définir toute la configuration dans un seul fichier YAML, puis démarrer tous les conteneurs avec une seule commande.

Plutôt que d'avoir tous vos services dans un seul grand conteneur, Docker Compose vous permet de les diviser individuellement conteneurs gérables. 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 de composants à l'aide de leurs fichiers Docker ou extrayez-les d'un registre.
  • Définissez tous les services de composants dans un fichier docker-compose.yml.
  • Exécutez-les tous ensemble à l'aide de la CLI Docker-compose.

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 docker compose est effectuée 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 être placées dans un dossier de projet avec le code en cours de construction.

Publicité

Un fichier de configuration Compose ressemblera à ce qui suit. Cette configuration exécute une instance WordPress à l'aide du conteneur wordpress 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 : toujours environnement : MYSQL_ROOT_PASSWORD : rootpasswordchangeme MYSQL_DATABASE : wordpress MYSQL_USER : usernamechangeme MYSQL_PASSWORD : passwordchangeme wordpress : depend_on : – db image : wordpress:derniers ports: – “8000:80” redémarrage: toujours environnement: 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 en fonction de la version que vous utilisez.

Ensuite, une liste de services. Le premier est nommé “db,” et utilise le conteneur mysql:5.7, configuré 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é sur 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, ce qui indique au conteneur WordPress de se connecter au “db” service.

Enfin, les volumes sont définis pour le stockage persistant. En option, vous pouvez également définir une mise en réseau personnalisée 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 de Docker Compose.

Publicité

Une fois configuré, le démarrage de ce service est facile. 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, WordPress fonctionnera correctement.

CONNEXES : Comment installer Docker et Docker Compose sur Linux

Créer 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 ce faire, il vous suffit d'ajouter une section de construction sur le service. Vous pouvez définir différents répertoires de contexte, ainsi que différents Dockerfiles pour différentes images.

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

In dans ce cas, la variable image : est également définie, mais elle est ici utilisée pour baliser l'image créée par Docker Compose.