Vous êtes sur la page 1sur 7

Matière : virtualisation et cloud computing SE : ubuntu 20.

04
Ubuntu 18.04
Travaux pratique
TP 6 : Docker compose Au : 2022-2023
Niveau : LF3 INFO

Prérequis :
- Ubuntu 20.04
- Une connexion internet

Partie 1 : installation du docker compose

1. Mettre à jour votre système :

sudo apt update

sudo apt upgrade

2. Installation curl :

Pour télécharger le package binaire à l'aide d'une URL, vous avez besoin de curl. Vous pouvez
vérifier si vous disposez de cet utilitaire de ligne de commande en tapant dans la fenêtre du
terminal :

Curl

Si la sortie affiche "try 'curl --help' ou 'curl --manual' for more information", passez à l'étape
suivante. Ce message signifie que curl est installé.

Sinon, vous devez installer curl avec :

sudo apt install curl

3. Téléchargez la dernière version de Docker.


Une fois le système mis à jour et curl disponible, vous pouvez télécharger et installer
Docker Compose. Il n'y a pas de script d'installation une fois le package disponible
localement, il est automatiquement installé.

Utilisez la commande suivante :

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
La commande demande au système d'enregistrer le fichier dans le répertoire /usr/local/bin/,
sous le nom docker-compose. Attendez la fin du téléchargement.

4. Modifiez l'autorisation du fichier


Rendez le fichier téléchargé exécutable en modifiant l'autorisation du fichier avec :

sudo chmod +x /usr/local/bin/docker-compose

5. Vérifiez la version de Docker Compose

Pour vérifier l'installation, vérifiez la version de Docker Compose en exécutant :

docker-compose --version

Si la sortie affiche la version téléchargée à l’étape 3, vous avez correctement installé le package.

6. Créer un nouveau dossier « app ». Accéder au dossier app et créer un fichier


index.html en tapant les lignes suivantes :

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Docker Compose Demo</title>
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/gh/kognise/water.css@latest/dist/dark.min.css">
</head>
<body>

<h1>This is a Docker Compose Demo Page.</h1>


<p>This content is being served by an Nginx container.</p>

</body>
</html>
Maintenant, créer un fichier « docker-compose.yml » et taper :

version: '3.7'
services:
web:
image: nginx:alpine
ports:
- "8000:80"
volumes:
- ./app:/usr/share/nginx/html

Taper la commande : docker-compose up

Pour vérifier que votre container est en marche , réaliser la commande suivante :

docker-compose ps
7. Démarrez le serveur : docker-compose up -d

8. Tester votre serveur en tapant sous le navigateur : localhost :8000

9. Taper les commandes suivantes :

mkdir wordpress
gedit wordpress/docker-compose.yml

Mettre les lignes suivantes dans le fichier docker-compose.yml

version:
"3.9"

services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
phpmyadmin:
image: phpmyadmin
restart: always
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./wordpress:/var/www/html
ports:
- "8081:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
wordpress_data: {}

Analysons le code ligne par ligne :

Dans la première ligne, nous spécifions la version du fichier Compose. Il existe plusieurs
versions du format de fichier Compose prenant en charge des versions spécifiques de Docker.
Ensuite, nous définissons deux services, db et wordpress.
Chaque service exécute une image et crée un conteneur distinct lorsque docker-compose est
exécuté.
Le service db :
• Utilise l'image mysql:5.7. Si l'image n'est pas présente sur le système, elle sera extraite
du référentiel public de Docker Hub.
• Utilise la stratégie de redémarrage qui demandera au conteneur de toujours redémarrer.
• Crée un volume nommé db_data pour rendre la base de données persistante.
• Définit les variables d'environnement pour l'image mysql:5.7.
Le service wordpress :
• Utilise l'image wordpress. Si l’image n’est pas présente sur votre système, Compose
l’extraira du référentiel public de Docker Hub.
• Utilise la stratégie de redémarrage qui demandera au conteneur de toujours redémarrer.
• Monte le répertoire wp_data sur l'hôte au répertoire /var/lib/mysql à l’intérieur du
conteneur.
• Transfère le port exposé 80 du conteneur au port 8081 de la machine hôte.
• Définit les variables d'environnement pour l'image wordpress.
• L'instruction depends_on définit la dépendance entre les deux services. Dans cet exemple,
db sera démarré avant wordpress.

10. Démarrer l’application :

docker-compose up -d

11. Ouvrez navigateur et tester localhost. Vous aurez la fenêtre suivante :

12. Personnalisez votre site web.


Pour vérifier les services en cours, utilisez l'option ps :

Lorsque docker Compose est exécuté en mode détaché (-d) pour arrêter l'utilisation des
services :

Si vous souhaitez supprimer entièrement les conteneurs, utilisez l'option down. Passer
l’option --volume supprimera également les volumes de données.

Vous aimerez peut-être aussi