Retour au blog

Travailler avec les volumes de données Docker sur Ubuntu 20.04

Travailler avec les volumes de données Docker sur Ubuntu 20.04

Introduction

Volumes de données Docker est un concept important lors de la conteneurisation de vos applications. Connaître ce concept est essentiel pour garantir la meilleure expérience de votre application conteneurisée ainsi qu’une persistance et une gestion des données fiables. Cependant, bien que ce concept soit important, il est également déroutant et complexe pour de nombreux développeurs. Il est important pour les développeurs et les spécialistes DevOps de comprendre comment configurer les volumes de données Docker, de comprendre leur utilisation correcte, de connaître les différents types de volumes et de savoir quel type choisir pour leur application.

Ce tutoriel est axé sur l’explication du concept et de l’utilisation des volumes de données Docker. Une fois ce tutoriel terminé, vous maîtriserez la configuration et l’utilisation de tout type de volume de données Docker.

Prérequis

Pour suivre ce tutoriel, vous aurez besoin des éléments suivants :

  1. Ubuntu installé. Consultez notre tutoriel Comment configurer votre serveur Ubuntu 18.04 pour une référence rapide.
  2. Utilisateur Ubuntu avec privilèges sudo. Cette étape peut être compliquée, surtout si vous n’êtes pas familier avec Linux. Lisez Configuration du fichier Linux Sudoers pour un guide détaillé.
  3. Docker installé sur Ubuntu. Pour installer Docker sur votre Ubuntu, vous pouvez suivre notre blog Comment installer & exploiter Docker sur Ubuntu dans le cloud public.

Bien que ce tutoriel se concentre sur la gestion de Docker sur Ubuntu, docker les commandes sont applicables sur tous les systèmes d’exploitation sur lesquels Docker est installé.

Comprendre le fonctionnement des conteneurs Docker

Pour bien comprendre les volumes de données Docker, vous devez savoir comment fonctionnent les conteneurs Docker. Dans cette section, nous proposons un aperçu des bases pour les nouveaux utilisateurs de Docker. Si vous savez comment fonctionne Docker ou si vous êtes un utilisateur expérimenté de Docker, vous pouvez ignorer cette section et commencer avec les volumes de données.

Les conteneurs Docker permettent d’exécuter une application par-dessus le système d’exploitation hôte en installant la plateforme Docker. Comme la plateforme Docker est installée sur le système d’exploitation hôte, une abstraction se forme entre la machine hôte et l’application invitée. Contrairement à une machine virtuelle, un conteneur Docker partage son noyau Linux avec le système d’exploitation hôte. Comme Docker n’a pas besoin d’un système d’exploitation supplémentaire installé par-dessus la machine hôte, les applications Docker sont légères et accessibles sur toutes les machines hôtes tant que Docker est installé sur cette machine hôte.

Comme il n’y a pas d’OS invité supplémentaire, la plateforme Docker partage les ressources avec la machine hôte. Le démarrage de l’application Docker est rapide, mais la complexité survient lorsqu’il faut partager les ressources. Docker ne dispose pas de sa propre mémoire ou de son propre stockage pour la persistance des données. Ces ressources doivent provenir de la machine hôte. Les personnes habituées à utiliser des machines virtuelles trouvent ce processus de partage et de gestion des ressources difficile. Ne pas avoir les connaissances appropriées peut conduire à des résultats inattendus et indésirables. Bien que ce tutoriel suppose que vous êtes familier avec l’écosystème Docker, n’hésitez pas à parcourir notre tutoriel détaillé Qu’est-ce que Docker ? Un aperçu de l’écosystème Docker pour un rappel rapide.

Persister les données à l’aide des volumes de données Docker

Lorsque vous travaillez avec Docker, vous ne pouvez pas y créer un volume directement. Par conséquent, pour stocker des données, nous devons créer un conteneur de volume Docker avec un volume qui lui est attaché. Pour connecter notre application Docker à ce conteneur de volume de données, nous utilisons la commande --volume-from de Docker pour obtenir le conteneur et l’attacher à notre application.

Nous allons passer en revue le processus étape par étape :

  1. Tout d’abord, créez un nouveau conteneur appelé, my-container en exécutant la commande ci-dessous :
    Docker Data Volumes 1 docker create my-container
    Cela créera un nouveau conteneur dans le dossier /tmp . Vous pouvez modifier le répertoire du dossier si nécessaire.
  2. Maintenant que votre conteneur de données est prêt, vous pouvez y écrire en exécutant un nouveau conteneur Ubuntu avec l’option --volume-from et en exécutant ensuite le bash. Tout ce que nous écrivons dans le tmp le répertoire sera sauvegardé dans le dossier /tmp de notre machine hôte :
    Docker Data Volumes 2 Run docker container
    L’option de ligne de commande -t appelle un terminal depuis l’intérieur du conteneur. L’option -i rend la connexion interactive. À l’invite bash du conteneur Ubuntu, créez un fichier dans /tmp:
  3. Enfin, quittez ce bash en exécutant la commande exit . Ensuite, exécutez la commande ci-dessous :
    Docker Data Volumes 3 New container sample file
    Vous trouverez votre sample_file dans ce répertoire. Il n’y a aucune restriction sur le nombre de volumes à spécifier. Vous pouvez ajouter autant de volumes que vous le souhaitez en utilisant l’option --volumes-from . Vous pouvez également créer autant de conteneurs de volumes de données que vous le souhaitez.

Accéder aux données entre l’hôte et le conteneur Docker

Pour les lecteurs expérimentés en virtualisation, cette option est similaire à l’option de dossier partagé dans les machines virtuelles. Ici, au lieu de créer un conteneur de données-uniquement , nous exécutons notre application Docker en utilisant l’image Docker et remplaçons l’un de ses répertoires par le contenu d’un répertoire du système hôte.

Un scénario courant consisterait à sauvegarder les fichiers de journalisation (logs) sur la machine hôte. Cela peut être nécessaire pour que nous puissions analyser ces fichiers selon les besoins sans avoir à entrer dans la machine. Pour ce scénario, supposez que vous utilisez l’ Docker Nginx image et que vous souhaitez stocker ses fichiers de journalisation sur la machine hôte. L’image Docker Nginx écrit les journaux dans le répertoire /var/log/nginx , mais il s’agit de /var/log/nginx à l’intérieur du conteneur Docker Nginx. Ainsi, cet emplacement n’est pas accessible à la machine hôte.

Pour atteindre notre objectif, nous devrons créer un dossier partagé pour stocker les journaux entre la machine hôte et l’image Docker Nginx. Ci-dessous, nous illustrerons ce processus dans un guide étape par étape simple :

  1. Tout d’abord, créez un répertoire sur votre machine hôte où vous souhaitez stocker les journaux :
    Ensuite, démarrez votre conteneur en exécutant la commande ci-dessous :
    Docker run nginx container
  2. Cette commande run accepte quelques arguments, alors décomposons-la pour mieux comprendre :
    • -p 5000:80 : Configure une redirection de port. Le conteneur Nginx écoute sur le port 80 par défaut, et cela mappe le port du conteneur Nginx 80 au port 5000 sur le système hôte.
    • -d : Détache le processus et l’exécute en arrière-plan.
    • -v ~/my-nginxlogs:/var/log/nginx : Nous relions le répertoire /var/log/nginx depuis l’intérieur du conteneur Nginx au répertoire /my-nginxlogs de la machine hôte. Ce : sépare le chemin de l’hôte du chemin du conteneur. Le chemin de l’hôte vient toujours en premier.

Maintenant que notre conteneur Nginx est en cours d’exécution, vérifiez d’abord si le serveur Nginx est actif sur le port de notre machine hôte 5000 en ouvrant votre navigateur Web et en accédant à l’URL : http://localhost:5000. Une fois que la page d’accueil apparaît, votre serveur Nginx est prêt et crée des journaux dans son dossier /var/log/nginx .

Si vous ouvrez le dossier /my-nginxlogs de votre machine hôte, vous y verrez les fichiers de journalisation du conteneur Docker Nginx. Si vous apportez des modifications au dossier /my-nginxlogs sur la machine hôte pendant que le conteneur Nginx est en cours d’exécution, les modifications seront également reflétées dans le dossier /var/log/nginx du conteneur.

Conclusion

Dans ce tutoriel, nous avons adopté une approche globale pour comprendre les volumes de données Docker. Nous avons examiné la création de volumes pour votre application, le partage de données entre l’hôte et le conteneur Docker, les types de données et la persistance des données. Cela vous aidera à rendre les données persistantes dans vos applications conteneurisées ainsi qu’à gérer l’état et la configuration de l’application.

Pour en savoir plus sur Docker, consultez les tutoriels suivants sur our blog:

Bonne informatique !

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.