Nouveau : Datasets open source gratuits disponibles !Decouvrir →
🐳
Intermediaire 25 min Docker

Docker Compose : multi-conteneurs

Pourquoi Docker Compose : multi-conteneurs ?

Dans un environnement professionnel, il est fréquent que plusieurs services ou microservices soient nécessaires pour construire une application complète. Docker Compose permet de gérer facilement et efficacement ces multiples conteneurs en les déployant ensemble dans un seul fichier de configuration.

Un cas d'usage concret pourrait être la construction d'un blog simple avec WordPress comme le CMS principal, MySQL pour la base de données et Nginx comme serveur Web. Docker Compose permet de définir et de gérer tous ces services en un seul endroit, facilitant ainsi le développement, le déploiement et le maintien de l'application.

Prerequis

Concepts fondamentaux

1. Fichier docker-compose.yml

Le fichier docker-compose.yml est la configuration principale qui définit les services, les réseaux et les volumes nécessaires pour votre application.

version: '3'
services:
  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:mysql:3306
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: example
      WORDPRESS_DB_NAME: wordpress

  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: wordpress

volumes:
  db_data:

2. Services

Les services définissent des conteneurs individuels qui forment votre application.

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

3. Images

Les images sont les bases sur lesquelles Docker construit les conteneurs. Vous pouvez utiliser des images officielles ou créer vos propres images.

services:
  web:
    image: my-web-app:latest

4. Ports

Les ports permettent de mapper des ports entre le hôte et les conteneurs.

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

5. Environnement

Les variables d'environnement peuvent être définies pour configurer les services.

services:
  web:
    image: my-web-app:latest
    environment:
      - MY_ENV_VAR=value

Mise en pratique : projet fil rouge

Nous allons créer un simple blog avec WordPress et MySQL à l'aide de Docker Compose.

Étape 1 : Création du fichier docker-compose.yml

version: '3'
services:
  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:mysql:3306
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: example
      WORDPRESS_DB_NAME: wordpress

  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: wordpress

volumes:
  db_data:

Étape 2 : Lancement du projet

docker-compose up -d

Cette commande démarre les deux services en arrière-plan.

Étape 3 : Accès au blog

Ouvrez un navigateur et allez à http://localhost:8080. Vous devriez voir l'interface d'installation de WordPress.

Erreurs frequentes et debugging

1. "Error starting userland proxy"

Cette erreur peut se produire si Docker ne peut pas démarrer le proxy utilisateur.

## ❌ Mauvais
docker-compose up -d
bash
## ✅ Correct
sudo systemctl restart docker
docker-compose up -d

2. "Cannot connect to the Docker daemon"

Cette erreur indique que vous n'avez pas les droits pour accéder au Docker daemon.

## ❌ Mauvais
docker-compose up -d
bash
## ✅ Correct
sudo docker-compose up -d

3. "Image not found"

Cette erreur se produit si l'image spécifiée n'est pas trouvée sur votre système local.

## ❌ Mauvais
docker-compose up -d
bash
## ✅ Correct
sudo docker pull wordpress:latest
sudo docker-compose up -d

Pour aller plus loin

  1. Docker Secrets : Apprenez à gérer les mots de passe et autres informations sensibles en utilisant Docker Secrets.
  2. Docker Networks : Explorez la création et la gestion des réseaux Docker pour une meilleure isolation entre les services.
  3. Docker Swarm : Découvrez comment déployer votre application sur un cluster Docker avec Docker Swarm.

Défi pratique : Créez une application simple qui utilise plusieurs services (par exemple, une base de données PostgreSQL, un backend Node.js et un frontend React) et configurez-le avec Docker Compose.

Besoin d'aide sur Docker ?

Besoin d'aide sur un projet technique ? Decrivez-le pour des conseils personnalises.

Recevoir des conseils

Questions frequentes

Qu'est-ce que Docker Compose?
Docker Compose est un outil qui permet de définir et d'exécuter des applications multi-conteneurs en utilisant un fichier YAML.
Comment configurer des services dans Docker Compose?
Vous configurez des services dans le fichier docker-compose.yml en spécifiant l'image à utiliser, les ports à mapper, les volumes à monter et d'autres configurations nécessaires pour chaque conteneur.
Quelle est la commande pour démarrer tous les services définis dans docker-compose?
La commande pour démarrer tous les services est `docker-compose up`. Vous pouvez également utiliser `-d` pour exécuter les services en arrière-plan.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.