Top 10 des meilleures housses de siège en néoprène de 2020 Avis
21 octobre 2020
Meilleures barres aérodynamiques en 2020 – Avis ultimes et guide d'achat
21 octobre 2020

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. Il s'agit d'un outil important pour toute application nécessitant plusieurs microservices, car il permet à chaque service de se trouver 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 les 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, plusieurs conteneurs peuvent être 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 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 en conteneurs gérables individuellement. C'est à la fois mieux pour la création et le déploiement, car vous pouvez tous les gérer dans des bases de code distinctes et vous 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 Dockerfiles ou extrayez-les d'un registre.
  • Définissez tous les services de composants dans un docker-compose.yml fichier.
  • Exécutez-les tous ensemble en utilisant le docker-composer 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 de 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 créez les images localement, elles devront aller dans un dossier de projet avec le code en cours de création.

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'

prestations de service:
   db:
     image: mysql: 5.7
     volumes:
       - db_data: / var / lib / mysql
     redémarrer: toujours
     environnement:
       MYSQL_ROOT_PASSWORD: rootpasswordchangeme
       MYSQL_DATABASE: wordpress
       MYSQL_USER: usernamechangeme
       MYSQL_PASSWORD: changement de mot de passe

   wordpress:
     dépend de:
       - db
     image: wordpress: dernier
     ports:
       - "8000: 80"
     redémarrer: toujours
     environnement:
       WORDPRESS_DB_HOST: db: 3306
       WORDPRESS_DB_USER: usernamechangeme
       WORDPRESS_DB_PASSWORD: changement de mot de passe
volumes:
    db_data:

Jetons un œil au 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 est nommé «db» et utilise le mysql: 5.7 conteneur, 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 lors des 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 Compose.

Une fois configuré, démarrer ce service est facile. Exécutez simplement docker-composer, qui extraira tous les conteneurs requis et démarrera vos services.

docker-compose up -d

Et vous devriez voir les services en cours d'exécution sur le système avec docker ps. Dans ce cas, vous verrez WordPress opérationnel correctement.

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 la tirer depuis Docker Hub.

Pour ce faire, il vous suffit d'ajouter un construire section 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"
prestations de service:
  application web:
    construire:
      contexte: ./dir
      dockerfile: Dockerfile-alternatif
    image: imagename: tag

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

//]]>