Qu'est-ce que Docker Compose ?

Martin PAUCOT
Publié le 2/13/2023
Retour

Contrairement aux machines virtuelles, le but de Docker est d'avoir chacun de ses services dans des containers dédiés puis de les configurer pour qu'ils puissent interagir entre eux.

Sauf que l'on se retrouve très rapidement à ne plus s'y retrouver...

C'est là qu'intervient Docker Compose.

Et si vous ne savez pas encore ce qu'est Docker, notre article vous explique tout !

Qu'est-ce que Docker Compose ?

Docker Compose est un outil open-source permettant de configurer un environnement multi-container avec un simple fichier de configuration YAML.

Chaque fichier correspond à un environnement ce qui permet de les isoler entre eux et s'assurer que les projets ne se marchent pas dessus.

Dans un fichier docker-compose.yml on y défini comment créer et démarrer les services (les containers) de notre environnement et comment ils interagissent entre eux (les réseaux).

version: '3'

services:
  node:
    image: node:16
    working_dir: /app
    volumes:
      - ./:/app
    command: ['npm', 'start']

  mysql:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: database

  pma:
    image: phpmyadmin:latest
    environment:
      PMA_HOST: mysql
    ports:
      - "8080:80"

Avec ce fichier vous avez une base de données MySQL avec PhpMyAmin pour l'administrer et un containeur qui lance une application NodeJS depuis un volume monté.

Grâce au CLI il est très facile d'administrer son environnement :

  • Démarrer l'environnement : docker compose up
  • Stopper l'environnement : docker compose stop
  • Supprimer l'environnement : docker compose rm
  • Administrer un service : docker compose [start|up|stop|rm] <service>
  • Exécuter une commande : docker compose exec <service> <command>

Les avantages de Docker Compose

Multi-OS

Docker étant disponible sur Linux, Mac et Windows, vos développeurs ne sont pas forcés d'utiliser le même OS pour travailler avec le même environnement.

Partager et versionner

Grâce à Docker Compose vous faites de la Configuration As Code, vous avez une version sans état de votre environnement qui peut donc être partagé.

En le stockant sur Git vos développeurs peuvent travailler sur le même environnements et vous pouvez profiter pleinement du versionning pour le mettre à jour.

Un environnement centralisé

Les services étant définis au même endroit, vous pouvez démarrer et stopper complètement l'environnement comme bon vous semble.

Le CLI de Docker Compose permet de facilement de redémarrer un service en particulier ou d'exécuter une commande dans le container.

Rapidité et simplicité

Vous pouvez très facilement passer d'un projet à un autre sans avoir à se soucier de gérer les versions de PHP ou de Node et une seule commande suffit pour lancer l'entièreté d'un environnement en quelques secondes.

Docker Compose pour la production

Vous pourriez simplement cloner votre repository sur votre serveur de production et démarrer votre environnement Docker. Mais devriez vous ?

Nous répondons à cette question dans cet article.

Pour conclure

Docker Compose permet de créer des environnements Docker multi-container en Configuration As Code dans un simple fichier YML pouvant être stocké, partagé et versionné.

Il facilite le quotidien des développeurs en leur permettant de démarrer un environnement complet sans se soucier de la maintenance ni de l'OS sous-jacent.

Partagez cet article :

Un projet DevOps ?

Contactez-nous !
© 2023 Syneki. Tous droits réservés.
Mentions Legales