Comment fonctionne le stockage Docker : Volumes vs Bind Mounts | INTROSERV
EUR
european

EUR

usa

USD

French Fr
Ex. VAT Ex. VAT 0%

Comment fonctionne le stockage Docker : Volumes vs Bind Mounts

Introduction

Dans ce tutoriel, vous apprendrez comment fonctionne le stockage Docker et comment persister les données en utilisant les volumes Docker et les montages de liaison. Vous comprendrez également les principales différences entre ces approches et quand utiliser chacune d'elles en production. Cela vous aide à éviter la perte de données et à concevoir des systèmes conteneurisés fiables.

Prérequis

  • Public cible : Administrateurs système débutants
  • Temps estimé : ~30 minutes
  • Système d'exploitation : Tout OS avec support Docker tel qu'Ubuntu 22.04+, Debian 12+, CentOS Stream, ou macOS avec Docker Desktop
  • Logiciel : Docker 24.0.0 ou version ultérieure
  • Permissions : Utilisateur avec accès à Docker ou privilèges sudo
  • Matériel : Au moins 2 Go de RAM et 10 Go d'espace disque libre
  • Réseau : Accès Internet pour récupérer les images de conteneurs
  • Connaissances supposées : Utilisation basique de la ligne de commande et compréhension des conteneurs

Étape 1 : Comprendre le fonctionnement du stockage Docker

Les conteneurs Docker utilisent un système de fichiers en couches. Chaque conteneur a une couche écrivable au-dessus des couches d'image en lecture seule.

Que se passe-t-il lorsqu'un conteneur écrit des données

  1. Docker stocke les couches d'image en lecture seule
  2. Lorsque vous démarrez un conteneur, Docker ajoute une couche écrivable
  3. Toute modification de fichier se produit uniquement dans cette couche écrivable

Résultat

Lorsque vous supprimez un conteneur, toutes les données de la couche écrivable sont perdues. Cela signifie que le stockage des conteneurs est éphémère par défaut.

Info

Ce comportement est utile pour les applications sans état mais pas pour les bases de données ou les services persistants.

Étape 2 : Créer et utiliser des volumes Docker

Les volumes Docker sont des emplacements de stockage gérés créés et maintenus par Docker.

Créer un volume

Exécutez la commande suivante :

docker volume create my_volume

Vous devriez voir le nom du volume retourné.

Utiliser un volume dans un conteneur

Exécutez la commande suivante :

docker run -d -v my_volume:/app/data --name volume_test busybox

Docker monte le volume à l'intérieur du conteneur à /app/data.

Résultat

Les données écrites dans /app/data persistent même si le conteneur est supprimé.

Caractéristiques clés des volumes

  • Gérés par Docker
  • Stockés dans des répertoires internes Docker tels que /var/lib/docker/volumes/
  • Faciles à sauvegarder et à migrer
  • Isolés de la structure du système de fichiers hôte

Tip

Utilisez des volumes pour les bases de données et les charges de travail en production.

Étape 3 : Créer et utiliser des montages de liaison

Les montages de liaison lient un répertoire spécifique sur l'hôte à un répertoire à l'intérieur du conteneur.

Utiliser un montage de liaison

Exécutez la commande suivante :

docker run -d -v /home/<YOUR_USERNAME>/data:/app/data --name bind_test busybox

Résultat

Le conteneur accède directement au répertoire de l'hôte. Toute modification dans le répertoire de l'hôte est immédiatement visible à l'intérieur du conteneur.

Caractéristiques clés des montages de liaison

  • Dépendent des chemins du système de fichiers hôte
  • Permettent l'édition directe de fichiers depuis l'hôte
  • Aucune isolation gérée par Docker
  • Plus flexibles mais moins portables

Info

Les montages de liaison reflètent immédiatement les changements entre l'hôte et le conteneur.

Étape 4 : Comparer les volumes et les montages de liaison

Comprendre les différences vous aide à choisir la bonne option.

Volumes Docker

  • Gérés par Docker
  • Portables entre environnements
  • Plus sûrs pour une utilisation en production
  • Plus faciles à sauvegarder
  • Abstraits du système de fichiers hôte

Montages de liaison

  • Gérés par l'hôte
  • Liés à des chemins de système de fichiers spécifiques
  • Utiles pour le développement
  • Fournissent un accès direct aux fichiers
  • Moins sécurisés si mal configurés

Étape 5 : Choisir entre les volumes et les montages de liaison en production

Utilisez les directives suivantes.

Quand utiliser les volumes Docker

  • Exécution de bases de données telles que MySQL ou PostgreSQL
  • Stockage de données d'application qui doivent persister
  • Déploiement de services en production
  • Besoin de portabilité entre serveurs

Quand utiliser les montages de liaison

  • Environnements de développement local
  • Édition directe de code ou de fichiers de configuration
  • Débogage du comportement des conteneurs
  • Configurations temporaires ou de test

Info

Important : Les montages de liaison peuvent exposer des fichiers sensibles de l'hôte aux conteneurs s'ils sont mal configurés. Vérifiez toujours les chemins et les permissions.

Vérification et tests

Créez un conteneur de test avec un volume :

docker run -it -v my_volume:/data --name playground busybox

À l'intérieur du conteneur, créez un fichier :

echo test > /data/file.txt

Quittez le conteneur et supprimez-le :

docker rm -f playground

Démarrez un nouveau conteneur avec le même volume :

docker run -it -v my_volume:/data --name playground busybox

Vérifiez le fichier :

cat /data/file.txt

Résultat attendu : Le fichier existe toujours, confirmant la persistance des données.

Revenir en arrière

Pour nettoyer les ressources, exécutez les commandes suivantes :

docker rm -f playground volume_test bind_test

docker volume rm my_volume

docker system prune -f

Info

Important : La suppression des volumes supprime définitivement toutes les données stockées.

Dépannage

  • Problème : Les données disparaissent après le redémarrage du conteneur
    Cause : Aucun volume ou montage de liaison utilisé
    Solution : Attachez un stockage persistant en utilisant des volumes ou des montages de liaison
  • Problème : Erreurs de permission refusée
    Cause : Inadéquation des permissions du répertoire hôte
    Solution : Ajustez les permissions en utilisant chmod ou chown
  • Problème : Volume ne se monte pas correctement
    Cause : Chemin ou syntaxe incorrecte
    Solution : Vérifiez le format de montage et les chemins

Conclusion et prochaines étapes

Vous avez appris comment fonctionne le stockage Docker et comment persister les données en utilisant des volumes et des montages de liaison. Vous comprenez également quand utiliser chaque approche en production. Ensuite, explorez Docker Compose pour gérer des applications multi-conteneurs et définir le stockage de manière plus structurée.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA