Installer Docker Compose sur Ubuntu 18.04

Guide d'installation de Docker Compose sur Ubuntu 18.04

Docker est un logiciel permettant d'automatiser le déploiement et la gestion d'applications dans un environnement de virtualisation au niveau du système d'exploitation. Il permet d'empaqueter une application avec l'ensemble de son environnement et de ses dépendances dans un conteneur portable sur n'importe quel système Linux prenant en charge les cgroups du noyau, et fournit un environnement de gestion des conteneurs.

file

Compose est un outil permettant de créer et d'exécuter des applications Docker multi-conteneurs. Avec Compose, vous utilisez un fichier dédié pour configurer les services de votre application.

Les caractéristiques qui font l'efficacité de Compose :

  • Plusieurs environnements isolés sur un seul hôte
  • Protection des données de volume lors de la création des conteneurs
  • Seuls les conteneurs modifiés sont recréés
  • Transfert de variables entre les environnements

Avant d'installer Docker Compose, assurez-vous que Docker est installé — consultez ce guide pour les détails d'installation.

Installer Docker Compose

Nous allons installer Docker Compose depuis le dépôt Docker sur GitHub. La syntaxe ci-dessous permet d'éviter l'erreur de droits insuffisants qui peut survenir avec sudo.

Vérifiez la version actuelle et mettez-la à jour si nécessaire avec la commande suivante :

sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
root@kvmde67-19464:~# sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  % Total % Received % Xferd Average Speed Time Time Time Current
                                 Dload Upload Total Spent Left Speed
100   638  100   638    0     0   1898      0 --:--:-- --:--:-- --:--:--  1898
100 16.7M 100 16.7M 0 0 5709k 0 0:00:03 0:00:03 --:--:--:-- 9427k

Ensuite, nous ajustons les permissions :

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

Puis nous vérifions que l'installation s'est bien déroulée :

docker-compose --version

Vous devriez obtenir une sortie similaire à celle-ci :

root@kvmde67-19464:~# docker-compose --version
docker-compose version 1.25.5, build 8a1c60f6

Démarrer un conteneur avec Docker Compose

Le registre Docker, Docker Hub, contient une image Hello World utilisée à des fins de démonstration et de test. Elle illustre les paramètres de configuration minimaux requis pour démarrer un conteneur avec Docker Compose : un fichier YAML qui fait référence à une image distincte.

Créez un répertoire pour le fichier YAML :

mkdir hello-world

Accédez-y :

cd hello-world

Créez ensuite un fichier YAML dans ce répertoire :

nano docker-compose.yml

Placez les données suivantes dans le fichier, enregistrez-le et fermez l'éditeur de texte :

my-test:
 image: hello-world

La première ligne du fichier YAML est utilisée comme partie du nom du conteneur. La deuxième ligne indique quelle image est utilisée pour créer le conteneur. Lorsque vous exécutez la commande docker-compose up, elle recherche l'image locale par le nom indiqué, c'est-à-dire hello-world.

file

Vous pouvez ensuite afficher les images présentes sur votre système avec la commande docker images :

docker images

En l'absence d'images locales, seuls les en-têtes de colonnes s'affichent :

REPOSITORY TAG IMAGE ID CREATED SIZE

Toujours depuis le répertoire ~/hello-world, exécutez la commande suivante :

docker-compose up

Une fois l'image téléchargée, docker-compose crée un conteneur, l'y place et exécute le programme hello :

root@kvmde67-19464:~/hello-world# docker-compose up
Pulling my-test (hello-world:)
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:8e3114318a995a1ee497790535e7b88365222a21771ae7e53687ad76563e8e76
Status: Downloaded newer image for hello-world:latest
Creating hello-world_my-test_1 ... done
Attaching to hello-world_my-test_1
my-test_1 | 
my-test_1 | Hello from Docker!
my-test_1 | This message shows that your installation appears to be working correctly.
my-test_1 | 
my-test_1 | To generate this message, Docker took the following steps:
my-test_1 | 1. The Docker client contacted the Docker daemon.
my-test_1 | 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
my-test_1 | (amd64)
my-test_1 | 3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
my-test_1 | 4. The Docker daemon streamed that output to the Docker client, which sent it
my-test_1 to your terminal.
my-test_1 | 
my-test_1_1 | To try something more ambitious, you can run an Ubuntu container with:
my-test_1 | $ docker run -it ubuntu bash
my-test_1 | 
my-test_1 | Share images, automate workflows, and more with a free Docker ID:
my-test_1 | https://hub.docker.com/
my-test_1 | 
my-test_1 | For more examples and ideas, visit:
my-test_1 | https://docs.docker.com/get-started/
my-test_1 | 
hello-world_my-test_1 exited with code 0

Les conteneurs Docker continuent de tourner tant que la commande reste active. Lorsque le conteneur hello se termine, il s'arrête donc automatiquement. Par conséquent, si vous affichez les processus actifs, vous verrez les en-têtes de colonnes, mais le conteneur hello-world n'apparaîtra pas dans la liste puisqu'il n'est plus en cours d'exécution.

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Le flag -a permet d'afficher tous les conteneurs, pas seulement les actifs :

docker ps -a
root@kvmde67-19464:~/hello-world# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfaaf998ecd6 hello-world "/hello" 45 seconds ago Exited (0) 43 seconds ago hello-world_my-test_1
Besoin d’aide?Nos ingénieurs vous aideront gratuitement pour n’importe quelle question en quelques minutesNous contacter