Création d'un projet Docker Compose simple
Maintenant que Docker Compose est correctement installé et fonctionne, créons un projet simple pour tester notre configuration. Nous allons créer une application web de base avec un serveur web et une base de données Redis.
Créer un répertoire de projet
Tout d'abord, créons un répertoire dédié à notre projet :
mkdir ~/project/docker-compose-test
cd ~/project/docker-compose-test
Créer un fichier Docker Compose
Maintenant, créons un fichier docker-compose.yml
en utilisant l'éditeur de texte nano
:
nano docker-compose.yml
Copiez et collez le contenu suivant dans le fichier :
version: "3"
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
redis:
image: redis:alpine
Ce fichier Docker Compose définit deux services :
web
: Un serveur web Nginx qui servira le contenu d'un répertoire local
redis
: Une base de données Redis pour la mise en cache ou le stockage des données de session
Appuyez sur Ctrl+O
suivi de Entrée
pour enregistrer le fichier, puis appuyez sur Ctrl+X
pour quitter nano.
Créer du contenu HTML
Créons une simple page HTML que notre service web servira :
mkdir -p html
nano html/index.html
Copiez et collez le contenu suivant dans le fichier :
<!DOCTYPE html>
<html>
<head>
<title>Docker Compose Test</title>
</head>
<body>
<h1>Hello from Docker Compose!</h1>
<p>If you can see this, your Docker Compose setup is working correctly.</p>
</body>
</html>
Appuyez sur Ctrl+O
suivi de Entrée
pour enregistrer le fichier, puis appuyez sur Ctrl+X
pour quitter nano.
Exécuter le projet Docker Compose
Maintenant, lançons notre projet Docker Compose :
docker-compose up -d
L'option -d
exécute les conteneurs en arrière-plan (mode détaché). Vous devriez voir une sortie similaire à :
Creating network "docker-compose-test_default" with the default driver
Pulling web (nginx:alpine)...
Pulling redis (redis:alpine)...
[...]
Creating docker-compose-test_web_1 ... done
Creating docker-compose-test_redis_1 ... done
Vérifier que les services sont en cours d'exécution
Vérifions que nos services fonctionnent correctement :
docker-compose ps
Vous devriez voir une sortie similaire à :
Name Command State Ports
------------------------------------------------------------------------------------
docker-compose-test_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp
docker-compose-test_web_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8080->80/tcp
Accéder à l'application web
Vous pouvez maintenant accéder à l'application web en ouvrant un navigateur web dans l'interface LabEx et en naviguant vers http://localhost:8080
. Vous devriez voir le message "Hello from Docker Compose!".
Alternativement, vous pouvez utiliser curl
pour vérifier le serveur web à partir de la ligne de commande :
curl http://localhost:8080
Vous devriez voir le contenu HTML que nous avons créé précédemment.
Arrêter le projet Docker Compose
Lorsque vous avez terminé les tests, vous pouvez arrêter le projet Docker Compose :
docker-compose down
Vous devriez voir une sortie similaire à :
Stopping docker-compose-test_web_1 ... done
Stopping docker-compose-test_redis_1 ... done
Removing docker-compose-test_web_1 ... done
Removing docker-compose-test_redis_1 ... done
Removing network docker-compose-test_default
Félicitations ! Vous avez installé avec succès Docker Compose, résolu l'erreur "command not found" et testé votre configuration avec une simple application multi-conteneurs.