⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Stockage

Par défaut, tous les fichiers créés à l'intérieur d'un conteneur sont stockés sur une couche de conteneur modifiable qui se trouve au-dessus des couches d'image en lecture seule et immuables.

Les données écrites dans la couche du conteneur ne persistent pas lorsque le conteneur est détruit. Cela signifie qu'il peut être difficile d'extraire les données du conteneur si un autre processus en a besoin.

La couche modifiable est unique par conteneur. Vous ne pouvez pas facilement extraire les données de la couche modifiable vers l'hôte, ou vers un autre conteneur.

Options de montage de stockage

Docker prend en charge les types de montage de stockage suivants pour stocker des données en dehors de la couche modifiable du conteneur :

Quel que soit le type de montage que vous choisissez d'utiliser, les données apparaissent de la même manière depuis l'intérieur du conteneur. Elles sont exposées soit comme un répertoire soit comme un fichier individuel dans le système de fichiers du conteneur.

Montages de volume

Les volumes sont des mécanismes de stockage persistant gérés par le démon Docker. Ils conservent les données même après la suppression des conteneurs qui les utilisent. Les données des volumes sont stockées sur le système de fichiers de l'hôte, mais pour interagir avec les données dans le volume, vous devez monter le volume dans un conteneur. L'accès direct ou l'interaction directe avec les données du volume n'est pas pris en charge, constitue un comportement non défini et peut entraîner une défaillance du volume ou de ses données de manière inattendue.

Les volumes sont idéaux pour le traitement de données critiques en termes de performances et les besoins de stockage à long terme. Puisque l'emplacement de stockage est géré sur l'hôte du démon, les volumes fournissent les mêmes performances de fichier brutes que l'accès direct au système de fichiers de l'hôte.

Montages bind

Les montages bind créent un lien direct entre un chemin du système hôte et un conteneur, permettant l'accès aux fichiers ou répertoires stockés n'importe où sur l'hôte. Puisqu'ils ne sont pas isolés par Docker, les processus non-Docker sur l'hôte et les processus du conteneur peuvent modifier les fichiers montés simultanément.

Utilisez les montages bind lorsque vous devez pouvoir accéder aux fichiers depuis le conteneur et l'hôte.

Montages tmpfs

Un montage tmpfs stocke les fichiers directement dans la mémoire de la machine hôte, garantissant que les données ne sont pas écrites sur le disque. Ce stockage est éphémère : les données sont perdues lorsque le conteneur est arrêté ou redémarré, ou lorsque l'hôte est redémarré. Les montages tmpfs ne persistent pas les données ni sur l'hôte Docker ni dans le système de fichiers du conteneur.

Ces montages conviennent aux scénarios nécessitant un stockage temporaire en mémoire, comme la mise en cache de données intermédiaires, la gestion d'informations sensibles comme les identifiants, ou la réduction des E/S disque. Utilisez les montages tmpfs uniquement lorsque les données n'ont pas besoin de persister au-delà de la session actuelle du conteneur.

Pipes nommés

Les pipes nommés peuvent être utilisés pour la communication entre l'hôte Docker et un conteneur. Le cas d'usage courant est d'exécuter un outil tiers à l'intérieur d'un conteneur et de se connecter à l'API Docker Engine en utilisant un pipe nommé.

Étapes suivantes

  • En savoir plus sur les volumes.
  • En savoir plus sur les montages bind.
  • En savoir plus sur les montages tmpfs.
  • En savoir plus sur les pilotes de stockage, qui ne sont pas liés aux montages bind ou aux volumes, mais vous permettent de stocker des données dans la couche modifiable d'un conteneur.