Docker Compose: Notions de base et utilisation

Docker Compose est un outil puissant et populaire utilisé pour gérer et déployer des applications basées sur Docker. Il vous permet de définir, de configurer et d'exécuter plusieurs Docker conteneurs en tant que projet unique, simplifiant le déploiement d'applications et garantissant la cohérence entre les environnements de développement et de production.

Voici quelques concepts et exemples de Docker Compose:

Définissez le projet à l'aide du fichier docker-compose.yml

Dans le docker-compose.yml fichier, vous pouvez définir les services nécessaires à votre application. Par exemple, pour déployer une application web PHP avec une base de données MySQL, vous pouvez définir deux services comme suit:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "80:80"  
    volumes:  
   - ./app:/var/www/html  
  
  db:  
    image: mysql:5.7  
    environment:  
      MYSQL_ROOT_PASSWORD: password  
      MYSQL_DATABASE: my_database  

Dans l'extrait de code ci-dessus, nous définissons deux services : web et db. Le web service utilisera PHP 7.4 image avec Apache, écoutera sur le port 80 et montera le ./app répertoire de l'hôte dans le /var/www/html répertoire du container. Le db service utilisera MySQL 5.7 image et définira certaines variables d'environnement requises pour la base de données.

 

Utilisation Docker Compose de la commande

Une fois que vous avez défini le projet dans le docker-compose.yml fichier, vous pouvez utiliser Docker Compose des commandes pour gérer les services.

  • Démarrez le projet : docker-compose up

    Cette commande démarrera les conteneurs pour les services définis dans le docker-compose.yml fichier.

  • Arrêtez et retirez les conteneurs : docker-compose down

    Cette commande arrête et supprime tous les conteneurs liés au projet.

  • Répertorier les conteneurs en cours d'exécution : docker-compose ps

    Cette commande affichera l'état des conteneurs dans le projet.

  • Afficher les journaux de service : docker-compose logs

    Cette commande affiche les journaux des services du projet.

 

Variables d'environnement et personnalisation

Docker Compose vous permet d'utiliser des variables d'environnement pour personnaliser les configurations pour différents environnements, tels que le développement et la production. Vous pouvez utiliser des variables d'environnement dans le docker-compose.yml fichier et définir leurs valeurs dans .env les fichiers correspondants.

Par exemple, si vous souhaitez définir une variable d'environnement pour le port du web service, vous pouvez ajouter une ligne au .env fichier comme celle-ci :

WEB_PORT=8080

Ensuite, dans le docker-compose.yml fichier, vous pouvez utiliser cette variable d'environnement comme ceci :

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

Lors de l'exécution de la docker-compose up commande, le web service écoutera sur le port 8080 au lieu du port 80.

 

Intégration avec Docker Swam

Si vous souhaitez déployer votre application sur un environnement distribué avec plusieurs nœuds, Docker Compose vous pouvez l'intégrer à Docker Swarm. Cela vous permet de gérer des services sur plusieurs nœuds dans un Docker cluster.

Pour utiliser cette intégration, il vous suffit d'ajouter les options --orchestrate ou lors de l'exécution de commandes ou dans un environnement. --with-registry-auth docker stack deploy docker-compose up Swarm

 

Docker Compose est un outil utile pour le développement, le test et le déploiement simples et efficaces d'applications. Il minimise les différences entre les environnements de développement et de production, assure la cohérence du processus de développement logiciel et améliore la productivité des équipes de développement.