L’outil Compose de Docker est un outil idéal pour tra­vail­ler dans le dé­ve­lop­pe­ment et les en­vi­ron­ne­ments de test, mais aussi pour les petites ap­pli­ca­tions de pro­duc­tion. Cet article explique comment or­ches­trer fa­ci­le­ment des ap­pli­ca­tions Docker avec Compose sous Ubuntu.

Docker Compose sous Ubuntu : prérequis

Avant de pouvoir utiliser Docker Compose, assurez-vous que votre système remplit bien les con­di­tions suivantes :

  • Docker Engine : comme Compose est une extension de Docker Engine, vous devez l’installer ;
  • Système d’ex­ploi­ta­tion : Ubuntu, uti­li­sa­teur sudo avec pri­vi­lèges root.
Conseil

Vous souhaitez utiliser un système d’ex­ploi­ta­tion autre que Linux ? Consultez notre guide pour savoir comment installer Docker Compose sur Windows et Docker Compose sur macOS.

Installer Docker Compose sur Ubuntu étape par étape

Pour utiliser Docker Compose sur Ubuntu, vous devez d’abord installer le Docker Engine sur votre système et vérifier qu’il s’exécute cor­rec­te­ment. Une fois que Docker fonc­tionne, té­lé­char­gez Compose et créez le fichier YAML pour con­fi­gu­rer vos ap­pli­ca­tions.

Étape 1 : té­lé­char­ger et installer Docker Compose

Té­lé­char­gez la dernière version de Docker Compose depuis le dépôt officiel GitHub en tapant la commande suivante dans un terminal :

$ curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
shell

Vous devez ensuite accorder à Docker Compose les droits d’exécution :

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

L’option « –version » permet de vérifier que Compose a bien été installé cor­rec­te­ment.

$ docker-compose --version
shell

Voici la sortie affichée :

Image: Version de Compose Docker
Si Docker Compose est bien installé, le système affiche le numéro de version.

Si l’ins­tal­la­tion échoue, jetez un œil au chemin d’accès et vérifiez que c’est le bon.

Il est aussi possible de créer un lien sym­bo­lique vers le chemin /usr/bin :

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
shell

Étape 2 : con­fi­gu­rer le fichier docker-compose.yml

Pour expliquer la con­cep­tion d’un fichier Docker-Compose-YAML, nous utilisons l’image Nginx du hub officiel de Docker pour l’en­vi­ron­ne­ment de conteneur.

Créez d’abord un nouveau dossier dans votre ré­per­toire personnel :

$ mkdir ~/compose-test
shell

Allez dans le ré­per­toire et créez-y un nouveau dossier pour le ré­per­toire root de votre en­vi­ron­ne­ment Nginx.

$ cd ~/compose-test
$ mkdir app
shell

Vous pouvez passer par n’importe quel éditeur de texte comme nano pour créer un index.html.

$ nano app/index.html
shell

Voici le code HTML d’une page test :

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Docker Compose Test</title>
</head>
<body>
    <h1>This is a Docker Compose Test Page for an Nginx container.</h1>
</body>
</html>
html

Sau­ve­gar­dez et fermez le fichier HTML puis créez ensuite docker-compose.yml.

$ nano docker-compose.yml
shell

Les contenus se composent du numéro de version de la con­fi­gu­ra­tion et du bloc Services.

version: ‘3.9’
services:
    web:
        image: nginx:alpine
        ports:
            - "8000:80"
        volumes:
- ./app:/usr/share/nginx/html
YAML

Dans le bloc Services, seul le service « web » est listé. Viennent ensuite l’image Nginx utilisée et la re­di­rec­tion de port. Dans ce cas, toutes les requêtes sur le port 8000 de la machine hôte sont re­di­ri­gées vers le conteneur Web sur le port 80, sur lequel Nginx est exécuté. En outre, nous utilisons un volume partagé entre l’hôte et le conteneur qui permet à l’ap­pli­ca­tion Nginx d’accéder au dossier local « app ».

Étape 3 : exécuter Docker Compose

La commande suivante permet de créer un conteneur Web et d’exécuter l’en­vi­ron­ne­ment du conteneur en arrière-plan :

$ docker-compose up -d
shell

Si l’image indiquée dans le fichier YAML n’est pas dis­po­nible sur le système local, elle est au­to­ma­ti­que­ment té­lé­char­gée.

Pour tester le bon fonc­tion­ne­ment de l’en­vi­ron­ne­ment Nginx, tapez la commande ps.

$ docker-compose ps
shell

La page test créée pré­cé­dem­ment est désormais ac­ces­sible sur localhost:8000 si vous exécutez la démo lo­ca­le­ment sur votre or­di­na­teur. Si vous passez par un serveur distant, indiquez sim­ple­ment l’adresse IP de votre serveur au lieu de « localhost ».

Image: Page test Compose Docker
Exemple de page test pour un conteneur Nginx

La commande stop vous permet de quitter à nouveau l’ap­pli­ca­tion de conteneur.

$ docker-compose stop
shell
Conseil

Notre tutoriel Docker et notre tour d’horizon des commandes Docker vous aideront à démarrer avec l’outil de conteneur. Apprenez-en plus sur comment or­ches­trer Docker avec Swarm et Compose.

Aller au menu principal