Recherche…


Introduction

Les volumes de données Docker permettent de conserver les données indépendamment du cycle de vie du conteneur. Les volumes présentent un certain nombre de fonctionnalités utiles telles que:

Montage d'un répertoire hôte dans le conteneur, partage des données entre les conteneurs à l'aide du système de fichiers et conservation des données si un conteneur est supprimé

Syntaxe

  • volume du docker [OPTIONS] [COMMANDE]

Montage d'un répertoire de l'hôte local dans un conteneur

Il est possible de monter un répertoire hôte sur un chemin spécifique de votre conteneur à l'aide de l'option de ligne de commande -v ou --volume . L'exemple suivant montera /etc sur l'hôte vers /mnt/etc dans le conteneur:

(on linux) docker run -v "/etc:/mnt/etc" alpine cat /mnt/etc/passwd
(on windows)  docker run -v "/c/etc:/mnt/etc" alpine cat /mnt/etc/passwd

L'accès par défaut au volume à l'intérieur du conteneur est en lecture-écriture. Pour monter un volume en lecture seule à l'intérieur d'un conteneur, utilisez le suffixe :ro :

docker run -v "/etc:/mnt/etc:ro" alpine touch /mnt/etc/passwd

Créer un volume nommé

docker volume create --name="myAwesomeApp"

L'utilisation d'un volume nommé rend la gestion des volumes beaucoup plus lisible par l'homme. Il est possible de créer un volume nommé en utilisant la commande spécifiée ci-dessus, mais il est également possible de créer un volume nommé à l'intérieur d'une commande d' docker run utilisant l'option de ligne de commande -v ou --volume :

docker run -d --name="myApp-1" -v="myAwesomeApp:/data/app" myApp:1.5.3

Notez que la création d'un volume nommé sous cette forme est similaire au montage d'un fichier / répertoire hôte en tant que volume, sauf qu'au lieu d'un chemin valide, le nom du volume est spécifié. Une fois créés, les volumes nommés peuvent être partagés avec d'autres conteneurs:

docker run -d --name="myApp-2" --volumes-from "myApp-1" myApp:1.5.3

Après avoir exécuté la commande ci - dessus, un nouveau conteneur a été créé avec le nom myApp-2 de la myApp:1.5.3 image, qui partage le myAwesomeApp volume nommé avec myApp-1 . Le volume nommé myAwesomeApp est monté dans /data/app dans le myApp-2 , tout comme il est monté dans /data/app dans le myApp-1 .



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow