Retour au blog

Comment installer et configurer Docker Compose sur Ubuntu 20.04

Comment installer et configurer Docker Compose sur Ubuntu 20.04

Introduction

La conteneurisation a connu un essor considérable dans le secteur des technologies logicielles ces dernières années. Cela peut être attribué à Docker qui est une plateforme de conteneurs simplifiant la gestion des processus à l'intérieur des conteneurs.

Les conteneurs sont des environnements standardisés légers, virtualisés, portables et définis par logiciel qui permettent au logiciel de s'exécuter de manière isolée des autres logiciels s'exécutant sur la machine hôte physique. Cette fonctionnalité de portabilité permet aux développeurs de modulariser leurs applications en services isolés. De plus, ils peuvent être déployés indépendamment, ce qui laisse de la place pour la mise à l'échelle.

Bien que la division d'une application en plusieurs services soit une excellente chose, elle s'accompagne de la complexité liée à la gestion de plusieurs conteneurs. Vous devez vous assurer qu'ils communiquent, démarrent et s'arrêtent en même temps. Grâce à un outil appelé Docker Compose, cela devient une tâche facile. Docker Compose permet aux développeurs d'exécuter des applications Docker multi-conteneurs en utilisant des règles définies dans un YAML fichier. Le fichier YAML contient les définitions des services de l'application et la manière dont ils peuvent partager des volumes de données et des réseaux. Une fois que vous avez défini les services, vous pouvez tous les lancer avec une seule commande. Dans ce tutoriel, nous allons vous montrer comment installer, configurer et démarrer avec Docker Compose sur Ubuntu 20.04.

Prérequis

Étape 1 : Installation de Docker Compose

Nous allons télécharger la dernière version stable de Docker Compose depuis son dépôt GitHub officiel. Vous pouvez trouver la dernière version sur la page des versions, au moment de la rédaction de ce tutoriel, la dernière version est 1.28.5.

Tout d'abord, connectez-vous à votre serveur Ubuntu avec l'utilisateur sudo non-root et entrez la commande suivante. Elle télécharge la dernière version (1.28.5) et enregistre l'exécutable dans le répertoire /usr/local/bin/docker-compose . Cela le rend accessible globalement sous le nom de docker-compose :

Une fois le téléchargement terminé, entrez la commande suivante pour définir les autorisations appropriées afin de rendre la commande docker-compose exécutable :

Maintenant, vérifiez que l'installation est réussie et que la commande peut être appelée en exécutant la commande suivante :

Vous devriez obtenir une sortie comme celle-ci :

docker compose version

Cela confirme que Docker Compose a été installé avec succès sur votre système.

Étape 2 : Création du fichier docker-compose.yml

Pour vous aider à comprendre comment travailler avec docker-compose.yml, nous allons configurer un environnement de serveur web en utilisant l'image officielle Nginx depuis Docker Hub. Une fois déployé, nous devrions être en mesure de servir une page HTML de base à partir du conteneur.

Nous allons créer notre répertoire de travail dans le dossier personnel à partir duquel nous travaillerons. Entrez la commande suivante pour créer le répertoire :

Ensuite, déplacez-vous dans le répertoire :

Une fois dans le répertoire, créez un dossier d'application qui sera la racine du document pour l'environnement Nginx. Nous pouvons appeler ce dossier app:

  • Création d'une page HTML

Utilisons l'éditeur de texte nano pour créer le fichier index.html dans le dossier app :

Ensuite, ajoutez le code HTML suivant au fichier :

Pour enregistrer le fichier, appuyez sur CTRL + O, ENTRÉE. Ensuite, fermez avec CTRL + X. Ensuite, nous allons créer le docker-compose.yml à la racine de notre projet.

  • Hébergement de la page HTML à l'aide de docker-compose

Ensuite, entrez la commande suivante pour ouvrir le fichier avec l'éditeur nano :

Après cela, ajoutez le fragment de code suivant à l'intérieur du fichier :

Le docker-compose.yml le fichier commence par le numéro de version qui indique à Docker Compose quelle version de configuration nous utilisons. Veuillez suivre ce lien pour en savoir plus sur la gestion des versions de Docker Compose.

Après le numéro de version, nous avons le bloc services qui contient les services qui composent l'environnement. Dans ce tutoriel, nous n'avons spécifié qu'un seul service appelé webserver. Le webserver utilisera l'image nginx:alpine. Nous avons également défini la redirection de port 8000:80. Cela signifie que toutes les requêtes provenant du port 8000 de la machine hôte seront redirigées vers le conteneur webserver sur le port 80, où Nginx est en cours d'exécution.

La directive volumes vous permet de créer un volume partagé entre la machine hôte et le conteneur que nous pouvons utiliser pour persister les données. Dans notre yml extrait de code, nous partageons le dossier local app avec le conteneur. À l'intérieur du conteneur, il sera placé à l'emplacement /usr/share/nginx/html. Par conséquent, il écrase la racine du document par défaut pour Nginx. Vous pouvez maintenant enregistrer et fermer le fichier.

Jusqu'à présent, vous avez créé votre exemple de page web HTML et le fichier docker-compose.yml avec les instructions pour construire un environnement de serveur web conteneurisé. Voyons comment nous pouvons lancer cette configuration à l'étape suivante.

Étape 3 : Exécution de la commande Docker Compose

Dans cette étape, nous allons exécuter la commande pour lancer notre environnement conteneurisé. Ci-dessous se trouve la commande unique qui initialisera le processus de téléchargement des images Docker, créera un conteneur pour le service webserver et lancera l'environnement conteneurisé en arrière-plan :

Docker est conçu pour être rapide et efficace, donc, lorsque vous exécutez la commande ci-dessus, il vérifie d'abord votre système local pour l'image définie. Si elle est manquante, il la récupérera ensuite depuis le dépôt Docker Hub. Il devrait afficher une sortie similaire à ceci :

 compose up

Lorsque l'exécution de la commande est terminée, elle démarrera l'environnement de conteneurs en arrière-plan. Vous pouvez vérifier qu'il fonctionne à l'aide de la commande :

Vous devriez obtenir une sortie similaire :

 compose ps

Si vous naviguez vers l'adresse IP ou le nom de domaine de votre serveur et ajoutez le port 8000, c'est-à-dire server_domain_or_IP:8000 vous devriez pouvoir voir l'exemple de page HTML que nous avons créé :

docker compose webpage

Si vous vous souvenez, nous avons configuré un volume partagé entre le conteneur et le système hôte. Cela maintient les fichiers du conteneur synchronisés avec les fichiers du système hôte. Par conséquent, si vous apportez une modification au fichier index.html, il se synchronise automatiquement avec le conteneur et cela se reflète lorsque vous rechargez la page dans le navigateur. Vous pouvez essayer avec l'éditeur nano. Apprenons d'autres commandes à l'étape suivante.

Étape 4 : Commandes Docker Compose supplémentaires pour la gestion des environnements de conteneurs

Maintenant que vous avez déployé avec succès une page web à l'aide de la seule commande docker-compose-up, voyons quelques commandes supplémentaires qui peuvent être utiles pour gérer les environnements conteneurisés.

Nous allons commencer par la commande logs. Les journaux (logs) peuvent être cruciaux lorsque vous dépannez les pannes de votre application. Tout d'abord, exécutez la commande suivante pour afficher les journaux générés par le conteneur Nginx :

Voici un exemple de sortie des journaux :

 logs

Vous pouvez suspendre l'exécution de l'environnement sans modifier l'état des conteneurs à l'aide de la commande :

 compose pause

Ensuite, pour réactiver ou reprendre les exécutions, utilisez la commande :

docker compose unpause

Vous pouvez souhaiter arrêter les conteneurs sans détruire leurs données. Pour ce faire, utilisez la commande suivante :

stop

Pour détruire les conteneurs, les réseaux et les volumes associés à l'environnement conteneurisé, utilisez la commande :

docker compose down

Gardez à l'esprit que la commande ci-dessus ne supprime pas les images de base utilisées par Docker Compose pour lancer l'environnement. Cela garantit des constructions plus rapides lorsque vous démarrez votre environnement, car il vérifie la machine locale pour trouver des images correspondantes. Si vous souhaitez supprimer complètement l'image de base, vous devez le spécifier dans la commande. Pour notre exemple, nous pouvons supprimer l'image nginx:alpine avec la commande :

 image remove

Enfin, vous pouvez trouver plus de commandes dans la référence de la ligne de commande Docker Compose officielle.

Conclusion

Dans ce tutoriel, vous avez installé Docker Compose sur Ubuntu 20.04, créé un environnement conteneurisé basé sur une image de serveur web Nginx, et appris à gérer les différents services à l'aide des commandes Docker Compose.

Si vous souhaitez apprendre à déployer une application dynamique réelle qui dépend de plusieurs conteneurs, veuillez lire notre tutoriel sur le déploiement de Laravel, Nginx et MySQL avec Docker Compose. Vous pouvez également trouver une liste complète des commandes docker-compose dans la documentation officielle de Docker Compose.

Bon développement !

author

Pranay Kapgate

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.