Installer Docker Compose sous Ubuntu

L’outil Compose de Docker est un outil idéal pour travailler dans le développement et les environnements de test, mais aussi pour les petites applications de production. Cet article explique comment orchestrer facilement des applications 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 conditions suivantes :

  • Docker Engine : comme Compose est une extension de Docker Engine, vous devez l’installer ;
  • Système d’exploitation : Ubuntu, utilisateur sudo avec privilèges root.
Conseil

Vous souhaitez utiliser un système d’exploitation 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 correctement. Une fois que Docker fonctionne, téléchargez Compose et créez le fichier YAML pour configurer vos applications.

Étape 1 : télécharger et installer Docker Compose

Téléchargez 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é correctement.

$ docker-compose --version
shell

Voici la sortie affichée :

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

Si l’installation é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 symbolique vers le chemin /usr/bin :

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

Étape 2 : configurer le fichier docker-compose.yml

Pour expliquer la conception d’un fichier Docker-Compose-YAML, nous utilisons l’image Nginx du hub officiel de Docker pour l’environnement de conteneur.

Créez d’abord un nouveau dossier dans votre répertoire personnel :

$ mkdir ~/compose-test
shell

Allez dans le répertoire et créez-y un nouveau dossier pour le répertoire root de votre environnement 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

Sauvegardez 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 configuration 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 redirection de port. Dans ce cas, toutes les requêtes sur le port 8000 de la machine hôte sont redirigé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’application 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’environnement du conteneur en arrière-plan :

$ docker-compose up -d
shell

Si l’image indiquée dans le fichier YAML n’est pas disponible sur le système local, elle est automatiquement téléchargée.

Pour tester le bon fonctionnement de l’environnement Nginx, tapez la commande ps.

$ docker-compose ps
shell

La page test créée précédemment est désormais accessible sur localhost:8000 si vous exécutez la démo localement sur votre ordinateur. Si vous passez par un serveur distant, indiquez simplement l’adresse IP de votre serveur au lieu de « localhost ».

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

La commande stop vous permet de quitter à nouveau l’application 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 orchestrer Docker avec Swarm et Compose.