Préparer un projet Docker Compose simple
Dans cette étape, nous allons préparer un projet Docker Compose simple. 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.
Comme Docker Compose n'est pas préinstallé dans l'environnement LabEx, nous devons d'abord l'installer. Nous allons télécharger le binaire Docker Compose et le rendre exécutable.
Tout d'abord, téléchargeons le binaire Docker Compose. Nous utiliserons curl
pour télécharger la dernière version stable.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Cette commande télécharge le binaire Docker Compose pour votre architecture système et l'enregistre dans /usr/local/bin/docker-compose
.
Ensuite, nous devons rendre le binaire téléchargé exécutable.
sudo chmod +x /usr/local/bin/docker-compose
Cette commande ajoute les permissions d'exécution au binaire Docker Compose.
Maintenant, vérifions l'installation en contrôlant la version de Docker Compose.
docker-compose --version
Vous devriez voir la version installée de Docker Compose dans la sortie, confirmant que l'installation a réussi.
Maintenant que Docker Compose est installé, créons un projet Docker Compose simple. Nous allons créer un répertoire pour notre projet puis un fichier docker-compose.yml
à l'intérieur.
Commencez par créer un répertoire nommé my-compose-app
dans votre répertoire personnel.
mkdir ~/project/my-compose-app
Accédez au répertoire nouvellement créé.
cd ~/project/my-compose-app
Maintenant, nous allons créer un fichier docker-compose.yml
. Ce fichier définira les services de notre application. Nous utiliserons nano
pour créer et éditer le fichier.
nano docker-compose.yml
Dans l'éditeur nano
, collez le contenu suivant :
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
app:
image: ubuntu:latest
command: tail -f /dev/null
Analysons ce fichier docker-compose.yml
:
version: '3.8'
spécifie la version du format de fichier Docker Compose.
services:
définit les services qui composent votre application.
web:
définit un service nommé web
.
image: nginx:latest
spécifie que ce service utilisera l'image Docker nginx:latest
. Si l'image n'est pas disponible localement, Docker Compose la téléchargera depuis Docker Hub.
ports:
mappe le port 80 de la machine hôte vers le port 80 du conteneur web
.
app:
définit un service nommé app
.
image: ubuntu:latest
spécifie que ce service utilisera l'image Docker ubuntu:latest
.
command: tail -f /dev/null
spécifie la commande à exécuter lors du démarrage du conteneur app
. Cette commande maintient le conteneur en fonctionnement indéfiniment sans quitter.
Enregistrez le fichier en appuyant sur Ctrl + X
, puis Y
, puis Entrée
.
Avant de pouvoir démarrer les services, nous devons nous assurer que les images Docker requises sont disponibles. Bien que Docker Compose télécharge les images si elles ne sont pas présentes, il est bon de les télécharger explicitement au préalable, surtout dans des environnements avec un accès Internet limité ou pour un démarrage plus rapide.
Téléchargeons l'image nginx:latest
.
docker pull nginx:latest
Cette commande télécharge l'image nginx:latest
depuis Docker Hub.
Ensuite, téléchargeons l'image ubuntu:latest
.
docker pull ubuntu:latest
Cette commande télécharge l'image ubuntu:latest
depuis Docker Hub.
Vous avez maintenant préparé avec succès un projet Docker Compose simple avec deux services, web
et app
, et téléchargé les images Docker nécessaires.