GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

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

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 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 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 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 Dockerfiles 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 docker compose 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:

Examinons 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 est nommé "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 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 é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.

Une fois configuré, démarrer 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 en cours d'exécution sur le système avec docker ps . Dans ce cas, WordPress sera opérationnel et fonctionnera correctement.

CONNEXE : 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 Dockerfiles pour différentes images.

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

Dans ce cas, l'image: La variable est également définie, mais ici, elle est utilisée pour marquer l'image qui est construite par Docker Compose.


Docker
  1. Qu'est-ce qu'Umask et comment l'utiliser

  2. Comment utiliser Docker Compose

  3. Que sont les volumes Docker et comment les utilisez-vous ?

  4. Comment et pourquoi utiliser un hôte Docker distant

  5. Comment installer et utiliser Docker Compose sur CentOS

Comment installer et utiliser Docker Compose sur Ubuntu 20.04

Comment installer et utiliser Docker Compose sur Ubuntu 22.04

Comment installer et utiliser Docker sur Ubuntu 22.04

Comment installer Docker et Docker Compose sous Linux

Comment installer et utiliser Docker sur Ubuntu 20.04

Comment installer et utiliser Docker Compose sur Debian 11