# 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
```

[![48.png](https://kb.numericare.fr/uploads/images/gallery/2021-03/scaled-1680-/dPIxv29SB8sw27sG-48.png)](https://kb.numericare.fr/uploads/images/gallery/2021-03/dPIxv29SB8sw27sG-48.png)

Créons un conteneur en mappant ce dossier :

```
sudo docker run --rm -ti -v $(pwd)/test:/test bash
```

[![49.png](https://kb.numericare.fr/uploads/images/gallery/2021-03/scaled-1680-/zliVM0vI2SinbV8x-49.png)](https://kb.numericare.fr/uploads/images/gallery/2021-03/zliVM0vI2SinbV8x-49.png)

Voyons le contenu de notre fichier /sbin (répertoire qui contient des commandes de base pour l'administration du système)

```
ls -lh /sbin
```

[![50.png](https://kb.numericare.fr/uploads/images/gallery/2021-03/scaled-1680-/DiicSGrY6yrjaFXq-50.png)](https://kb.numericare.fr/uploads/images/gallery/2021-03/DiicSGrY6yrjaFXq-50.png)

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
```

[![51.png](https://kb.numericare.fr/uploads/images/gallery/2021-03/scaled-1680-/5OiKndAhb84SfEjs-51.png)](https://kb.numericare.fr/uploads/images/gallery/2021-03/5OiKndAhb84SfEjs-51.png)

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
```

[![52.png](https://kb.numericare.fr/uploads/images/gallery/2021-03/scaled-1680-/p1eCnTi7zCxmaAW9-52.png)](https://kb.numericare.fr/uploads/images/gallery/2021-03/p1eCnTi7zCxmaAW9-52.png)

Essayons de créer un nouveau conteneur avec le volume managé créé ci-dessus

```
sudo docker run --rm -ti -v mes_donnees:/test bash
```

[![53.png](https://kb.numericare.fr/uploads/images/gallery/2021-03/scaled-1680-/TmhyROol46Lsbet1-53.png)](https://kb.numericare.fr/uploads/images/gallery/2021-03/TmhyROol46Lsbet1-53.png)

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é

<p class="callout info">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</p>

Voici comment retrouver les volumes managés par docker

```
sudo docker volume inspect mes_donnees
```

[![54.png](https://kb.numericare.fr/uploads/images/gallery/2021-03/scaled-1680-/cUpkQROqz48a4Ak7-54.png)](https://kb.numericare.fr/uploads/images/gallery/2021-03/cUpkQROqz48a4Ak7-54.png)

Allons voir dedans pour voir si le fichier fic est bien présent

```
sudo ls -lh /var/lib/docker/volumes/mes_donnees/_data
```

[![55.png](https://kb.numericare.fr/uploads/images/gallery/2021-03/scaled-1680-/DdhklpGDpaQ6YgOI-55.png)](https://kb.numericare.fr/uploads/images/gallery/2021-03/DdhklpGDpaQ6YgOI-55.png)

Si on monte sur le volume managé le dossier sbin

```
sudo docker run --rm -ti -v mes_donnees:/sbin bash
```

[![56.png](https://kb.numericare.fr/uploads/images/gallery/2021-03/scaled-1680-/kBxy9SQqjlxIBZK4-56.png)](https://kb.numericare.fr/uploads/images/gallery/2021-03/kBxy9SQqjlxIBZK4-56.png)

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

[![57.png](https://kb.numericare.fr/uploads/images/gallery/2021-03/scaled-1680-/s0lhZtpTHOJ7UuR0-57.png)](https://kb.numericare.fr/uploads/images/gallery/2021-03/s0lhZtpTHOJ7UuR0-57.png)

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/
```

[![58.png](https://kb.numericare.fr/uploads/images/gallery/2021-03/scaled-1680-/sVYeXZHEtykh23KP-58.png)](https://kb.numericare.fr/uploads/images/gallery/2021-03/sVYeXZHEtykh23KP-58.png)

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.

<p class="callout info">Quand on monte un volume managé <span style="text-decoration: underline;">**VIDE**</span>, 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</p>