Retour au cours

Leçon 11 : Introduction au stockage des conteneurs et à l'absence d'état (statelessness)

Docker, de zéro à héros : Le cours complet sur la conteneurisation pour débutants

Leçon 11 : Introduction au stockage des conteneurs et à l'absence d'état (statelessness)

Par défaut, les conteneurs sont conçus pour être sans état (stateless) et éphémères (de courte durée). Cela signifie que toute donnée écrite à l'intérieur de la couche inscriptible du conteneur est perdue lorsque le conteneur est arrêté et supprimé.

Le Besoin de Persistance

La plupart des applications doivent stocker des données de manière persistante :

  • Les bases de données (PostgreSQL, MongoDB) doivent conserver leurs fichiers de données.
  • Les applications web doivent stocker les téléchargements d'utilisateurs, les fichiers de log ou les données de session.

Si nous n'utilisions pas de stockage persistant, le redémarrage d'un conteneur de base de données entraînerait une perte complète de toutes les données utilisateur.

Solutions de Docker pour la Persistance

Docker propose deux mécanismes principaux pour le stockage persistant qui permettent aux données de survivre aux redémarrages et suppressions de conteneurs, et qui permettent également le partage de données entre les conteneurs ou avec le système hôte :

  1. Volumes : La méthode préférée et la plus robuste. Docker gère l'emplacement de stockage sur la machine hôte.
  2. Bind Mounts : Mappe un fichier ou un répertoire spécifique de la machine hôte directement dans le conteneur. Idéal pour le développement.

Le Concept des Pilotes de Stockage (Storage Drivers)

Docker utilise un pilote de stockage (par exemple, OverlayFS, ZFS) pour gérer la manière dont les fichiers sont stockés et récupérés, en particulier concernant les couches d'image et la mince couche inscriptible du conteneur.

Point Clé : Ne comptez jamais sur la couche inscriptible du conteneur pour les données critiques. Si le conteneur plante ou est supprimé, les données sont perdues.