Labo 9 - Les volumes, partie 2
Nous allons continuer à voir le mappage des volumes de l'hôte vers le conteneur
Créons un dossier avec un fichier auquel je lui donne tous les droits et du texte dedans
sudo mkdir test && sudo chmod -R 777 test && sudo echo OK > test/fic && sudo cat test/fic
Créons un conteneur en mappant ce dossier :
sudo docker run --rm -ti -v $(pwd)/test:/test bash
Voyons le contenu de notre fichier /sbin (répertoire qui contient des commandes de base pour l'administration du système)
ls -lh /sbin
Sortons du conteneur et créons-en un nouveau en changeant le mappage du volume de cette manière :
sudo docker run --rm -ti -v $(pwd)/test:/sbin bash
Le mappage a totalement éclipsé le contenu de sbin, c'est la particularité du mappage.
Les volumes managés
Nous allons voir un autre type de volumes : les volumes managés. C'est docker qui a la main dessus alors que les volumes mappés sont sur l'hôte lui même.
Pour ce faire, créons un volume
sudo docker volume create mes_donnees && sudo docker volume ls
Essayons de créer un nouveau conteneur avec le volume managé créé ci-dessus
sudo docker run --rm -ti -v mes_donnees:/test bash
On voit bien qu'en créant un fichier dans le conteneur, en sortant du conteneur (= conteneur détruit) et en recréant un nouveau conteneur, le fichier est toujours présent grâce au volume managé
En lançant la commande précédente, il est possible de créer directement le volume managé sans passer par la commande
sudo docker volume create mes_donnees
Voici comment retrouver les volumes managés par docker
sudo docker volume inspect mes_donnees
Allons voir dedans pour voir si le fichier fic est bien présent
sudo ls -lh /var/lib/docker/volumes/mes_donnees/_data
Si on monte sur le volume managé le dossier sbin
sudo docker run --rm -ti -v mes_donnees:/sbin bash
On voit bien le fichier fic présent dans le volume managé sur l'hôte.
Supprimons, depuis l'hôte ce fichier dans le volume managé et relançons le création d'un nouveau conteneur
Le volume managé étant vide, on peut voir maintenant le contenu du dossier /sbin dans le conteneur.
On sort du conteneur, et affichons le contenu du volume partagé
sudo ls -lh /var/lib/docker/volumes/mes_donnees/_data/
On retrouve l'intégralité du dossier /sbin du conteneur bien que ce dernier ait été supprimé
Je peux donc créer, modifier, supprimer des dossiers ou fichiers depuis l'hôte ou depuis le conteneur.
Quand on monte un volume managé VIDE, le contenu du dossier de montage du conteneur est intégralement transféré dans le volume managé. Tout cela est persistent à la suppression du conteneur











No comments to display
No comments to display