Docker
Docker Data Volumes
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
.