Docker

Volumes Docker, montage et plus

Volumes Docker, montage et plus
Dans Docker, chaque fois que vous créez un conteneur, il existe un endroit spécifié où les données du conteneur seront stockées. Si vous ne fournissez aucun emplacement pour le stockage de ces données, elles seront stockées dans le conteneur. Lorsque vous supprimez le conteneur, les données seront également perdues. Cependant, lorsque vous travaillez sur des projets d'entreprise, pour éviter la perte de données, vous pouvez supprimer un conteneur mais conserver les données. Vous pouvez utiliser ces données pour créer plus de conteneurs et partager les données entre ces conteneurs. C'est là que le volume Docker entre en jeu.

Fonctionnalités de Docker Volumes

Dans ce tutoriel, nous expliquerons ce qu'est un volume Docker et comment l'utiliser, ainsi que comment monter un volume dans Docker.

Conditions

Syntaxe de base du volume Docker

Vous pouvez utiliser la commande « docker volume » pour voir toutes les options disponibles avec volume :

volume du docker

Vous devriez voir la sortie suivante après avoir entré la commande ci-dessus :

Utilisation: docker volume COMMANDE
Gérer les volumes
Commandes :
créer Créer un volume
inspecter Affiche des informations détaillées sur un ou plusieurs volumes
ls Liste des volumes
élaguer Supprimer tous les volumes locaux inutilisés
rm Supprimer un ou plusieurs volumes
Exécutez 'docker volume COMMAND --help' pour plus d'informations sur une commande.

Créer un volume

Pour créer un volume de données, vous devrez d'abord créer un volume de données sur l'hôte Docker et attacher le volume au conteneur.

Vous pouvez créer un volume Docker à l'aide de la commande « docker volume create.” Par exemple, utilisez la commande suivante pour créer un nouveau volume Docker nommé myvolume :

docker volume créer monvolume

Vous devriez voir la sortie suivante :

monvolume

Vous pouvez répertorier votre volume existant à l'aide de la commande suivante :

docker volume ls

Vous devriez voir la sortie suivante :

NOM DU VOLUME DU PILOTE
local c2d2815ba1a75fbfe5d0a4b69d94269e55ccbc138c7d2e19504e501f1dbe634f
monvolume local

Si vous souhaitez voir plus d'informations sur le volume, exécutez la commande suivante :

docker inspecte monvolume

Vous devriez obtenir la sortie suivante après avoir exécuté la commande ci-dessus :

[

"CrééÀ": "2020-09-12T04:51:31Z",
"Pilote": "local",
"Étiquettes": ,
"Mountpoint": "/var/lib/docker/volumes/myvolume/_data",
"Nom": "monvolume",
"Options": ,
"Portée": "locale"

]

Monter un volume

À ce stade, vous avez un volume nommé myvolume. Dans cet exemple, vous allez créer un conteneur et monter un myvolume sur le conteneur.

Vous pouvez utiliser l'option -mount pour monter le volume. La syntaxe de base pour monter le volume sur le conteneur est illustrée ci-dessous :

docker run --mount source=volume-name,destination=path-inside-container docker-images

Par exemple, pour créer un conteneur Ubuntu et monter le myvolume sur le conteneur, exécutez la commande suivante :

docker run -it --name=container de volume --mount source=myvolume,destination=/data ubuntu

Cette commande extraira l'image Ubuntu du Docker Hub, démarrera le conteneur en mode interactif avec le nom volumecontainer et montera le conteneur myvolume sur le /data dans le répertoire /data :

Impossible de trouver l'image 'ubuntu:latest' localement
dernier : Extraire de la bibliothèque/ubuntu
54ee1f796a1e : Tirez terminé
f7bfea53ad12 : extraction terminée
46d371e02073 : Tirez terminé
b66c17bbf772 : extraction terminée
Résumé : sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Statut : Image plus récente téléchargée pour ubuntu : la dernière
racine@06a477c4e444:/#

Vous pouvez vérifier le volume monté avec la commande suivante :

[email protégé] :/# ls

Vous devriez voir le répertoire de données dans la sortie suivante :

bin boot data dev etc home lib lib32 lib64 libx32 media mnt
opt proc root exécuter sbin srv sys tmp usr var

Maintenant, nous allons créer un exemple de fichier nommé fichier.txt dans le répertoire /data avec la commande suivante :

echo "Ceci est un fichier de test!" > /données/fichier.SMS

Quittez le conteneur avec la commande suivante :

sortir

Redémarrez le même conteneur avec la commande suivante :

conteneur docker start volumecontainer

Ensuite, attachez le conteneur en cours d'exécution avec la commande suivante :

docker exec -it volumecontainer /bin/bash

Vérifiez si votre fichier.txt est persistant avec les éléments suivants :

données/fichier de chat.SMS

Vous devriez obtenir la sortie suivante après avoir entré la commande ci-dessus :

Ceci est un fichier de test!

Partager des données entre des conteneurs

Vous pouvez également partager des données entre plusieurs conteneurs à l'aide du volume Docker.

Comme vous le savez, nous avons créé un volume nommé myvolume un nouveau conteneur nommé volumecontainer utilisant ce volume. Nous avons également créé un fichier nommé file.txt à l'intérieur du volume.

Maintenant, nous allons créer un autre conteneur nommé volumecontainer1 avec le même volume myvolume à l'aide de la commande suivante :

docker run -it --name=volumecontainer1 --mount source=myvolume,destination=/data ubuntu

Exécutez la commande ls, comme indiqué ci-dessous :

ls

Vous devriez voir le répertoire de données dans la sortie suivante :

bin boot data dev etc home lib lib32 lib64 libx32
media mnt opt ​​proc root exécuter sbin srv sys tmp usr var

Exécutez la commande suivante pour vérifier le fichier.SMS:

chat /données/fichier.SMS

Vous devriez voir le même contenu que vous avez créé dans le conteneur précédent :

Ceci est un fichier de test!

Monter le répertoire en tant que volume

Vous pouvez utiliser le répertoire situé dans votre système hôte Docker en tant que volume et le monter sur le conteneur. Vous pouvez également utiliser l'option -v pour obtenir la même chose, comme indiqué ci-dessous :

docker run -v "directory_name":volume_name docker_image

Créez un répertoire nommé /data dans l'hôte Docker avec la commande suivante :

mkdir /Données

Ensuite, créez des fichiers dans le répertoire /Data :

cd /Données
toucher fichier1.txt fichier2.txt fichier3.SMS

Créez un nouveau conteneur en utilisant le répertoire /Data comme volume avec la commande suivante :

docker run -it --name=data1 -v /Data:/Data ubuntu

Cette commande créera un nouveau conteneur et montera le volume avec le nom /Data.

Exécutez la commande suivante pour vérifier le contenu du répertoire /Data :

ls -l /Données/

Vous devriez voir tous les fichiers que nous avons précédemment créés dans le système hôte, comme indiqué ci-dessous :

total 0
-rw-r--r-- 1 root root 0 Sep 12 05:41 file1.SMS
-rw-r--r-- 1 root root 0 Sep 12 05:41 file2.SMS
-rw-r--r-- 1 root root 0 Sep 12 05:41 file3.SMS

Supprimer le volume Docker

Vous pouvez facilement supprimer ou supprimer le volume en utilisant la syntaxe suivante :

docker volume rm nom-volume

Par exemple, pour supprimer le volume nommé myvolume, exécutez la commande suivante :

docker volume rm monvolume

Vous devriez obtenir l'erreur suivante :

Réponse d'erreur du démon : remove myvolume :
le volume est en cours d'utilisation - [06a477c4e4444c0f815a1ec4a151a8
339bf53d5060c492af867bcaebe531dd5d, fd8d05a027a755f
1df004ccf62568b5d66989c2112115c8a652ddbc8eb960948]

C'est parce que votre volume est utilisé par le conteneur. Donc, vous devrez arrêter et retirer le conteneur avant de retirer le volume.

Pour arrêter et supprimer le conteneur, exécutez la commande suivante :

docker container stop volumecontainer volumecontainer1
conteneur docker rm volumecontainer volumecontainer1

Maintenant, vous pouvez facilement supprimer le volume.

Conclusion

Dans le guide ci-dessus, vous avez appris ce qu'est le volume Docker, comment le créer et comment le monter à l'intérieur du conteneur. Vous avez également appris à partager des données entre plusieurs conteneurs à l'aide du volume.

Tutoriel Bataille pour Wesnoth
The Battle for Wesnoth est l'un des jeux de stratégie open source les plus populaires auxquels vous pouvez jouer en ce moment. Non seulement ce jeu es...
0 A.ré. Didacticiel
Sur les nombreux jeux de stratégie disponibles, 0 A.ré. parvient à se démarquer comme un titre complet et un jeu tactique très profond bien qu'il soit...
Tutoriel Unity3D
Introduction à Unity 3D Unity 3D est un puissant moteur de développement de jeux. C'est une plateforme multiplateforme qui vous permet de créer des je...