Déployer une pile d'exemple
Dans cette étape, vous apprendrez à déployer une pile d'exemple à l'aide de Docker Compose. Docker Compose est un outil permettant de définir et d'exécuter des applications Docker multi-conteneurs. Avec Compose, vous utilisez un fichier YAML pour configurer les services de votre application. Ensuite, avec une seule commande, vous créez et démarrez tous les services à partir de votre configuration.
Étant donné que Docker Compose n'est pas préinstallé dans l'environnement LabEx, vous devez d'abord l'installer. Nous allons installer la version 1.29.2 de Docker Compose, qui est compatible avec la version de Docker installée.
Tout d'abord, téléchargez le binaire Docker Compose :
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Cette commande télécharge le binaire Docker Compose depuis le dépôt GitHub officiel et le sauvegarde dans /usr/local/bin/docker-compose
. Les parties $(uname -s)
et $(uname -m)
détectent automatiquement votre système d'exploitation et votre architecture.
Ensuite, appliquez les autorisations d'exécution au binaire :
sudo chmod +x /usr/local/bin/docker-compose
Cette commande rend le fichier téléchargé exécutable.
Maintenant, vérifiez l'installation en vérifiant la version de Docker Compose :
docker-compose --version
Vous devriez voir une sortie similaire à docker-compose version 1.29.2, build 5becea4c
.
Maintenant que Docker Compose est installé, créons un simple fichier Docker Compose pour définir notre pile. Nous allons créer un fichier nommé docker-compose.yml
dans le répertoire ~/project
.
Utilisez l'éditeur nano
pour créer et éditer le fichier :
nano ~/project/docker-compose.yml
Collez le contenu suivant dans le fichier docker-compose.yml
:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
app:
image: alpine:latest
command: echo "Hello from Alpine"
Ce fichier docker-compose.yml
définit deux services :
web
: Utilise l'image nginx:latest
et mappe le port 80 de l'hôte sur le port 80 du conteneur.
app
: Utilise l'image alpine:latest
et exécute une simple commande echo
.
Enregistrez le fichier en appuyant sur Ctrl + S
et quittez l'éditeur en appuyant sur Ctrl + X
.
Avant de déployer la pile, téléchargeons les images nécessaires. Bien que Docker Compose puisse télécharger les images automatiquement lors du déploiement, le téléchargement explicite au préalable peut parfois être utile.
Téléchargez l'image nginx:latest
:
docker pull nginx:latest
Téléchargez l'image alpine:latest
:
docker pull alpine:latest
Maintenant, déployez la pile à l'aide de la commande docker-compose up
. Le flag -d
exécute les conteneurs en mode détaché (en arrière-plan).
Accédez au répertoire ~/project
où vous avez créé le fichier docker-compose.yml
:
cd ~/project
Ensuite, exécutez la commande :
docker-compose up -d
Cette commande lit le fichier docker-compose.yml
et crée et démarre les services définis. Vous devriez voir une sortie indiquant la création et le démarrage des services web
et app
.
Pour vérifier que les services sont en cours d'exécution, vous pouvez lister les conteneurs en cours d'exécution :
docker ps
Vous devriez voir deux conteneurs en cours d'exécution, l'un pour le service web
(basé sur nginx
) et l'autre pour le service app
(basé sur alpine
).