Gérer des volumes
Docker permet de gérer les volumes de données à l'aide de plusieurs commandes docker volumes
:
create
: permet de créer un nouveau volumeinspect
: Affiche les informations d'un ou plusieurs volumesls
: Liste les volumes de l'hôte Dockerrm
: Supprime un volume
Syntaxe : Création d'un volume nommé
~ docker volume create --name exemple
Tout comme les conteneurs, un volume peut avoir un nom ce qui permet de le manipuler plus facilement.
~ docker volume ls
DRIVER VOLUME NAME
local 50957995c7304e7d398429585d36213bb87781c53550b72a6a27c755c7a99639
local exemple
Syntaxe : Informations sur les conteneurs
~ docker volume inspect example
[
{
"Name": "example",
"Driver": "local",
"Mountpoint":
"/var/lib/docker/volumes/exemple/_data",
"Labels": {},
"Scope": "local"
} ]
Syntaxe : Utilisation d'un volume nommé
~ docker run -v example:/mountPoint -it debian:stretch
Cette commande permet de monter un volume manuellement dans un nouveau conteneur. En cas de suppression du conteneur, il est toujours possible de connecter le volume sur un nouveau conteneur.
Nous avons décrit précédemment les étapes à suivre pour créer un volume de données dans une image Docker à l'aide de l'instruction VOLUME du fichier Docker Compse.
Cependant, Docker ne fournit aucun mécanisme permettant de partager le répertoire ou le fichier présent sur l'hôte pendant la construction afin de garantir la transférabilité des images Docker. La seule disposition fournie par Docker consiste à monter le répertoire ou le fichier de l'hôte sur le volume de données d'un conteneur lors du lancement de celui-ci.
Afin de permettre la transférabilité des données d'un conteneur à un autre, il est possible d'utiliser l'option -v
de la sous-commande docker run
.
-v <chemin dans le conteneur>
-v <chemin hôte docker>:<chemin dans le conteneur>
-v <chemin hôte docker>:<chemin dans le conteneur>:<read write mode>
-v <nom de volume>:<chemin dans le conteneur>
-v <nom de volume>:<chemin dans le conteneur>:<read write mode>
Exemple :
~ docker run -v example:/mountPoint -it debian:stretch
Cette commande permet de monter un volume manuellement dans un nouveau conteneur. En cas de suppression du conteneur, il est toujours possible de connecter le volume sur un nouveau conteneur.
~ docker run -v /home/myuser/docker/mon-application:/mountPoint -it debian:stretch
Cette commande permet de partager des données de l'hôte Docker du chemin /home/myuser/docker/mon-application
vers le conteneur dans le dossier /mountPoint