Fonctionnalités de Docker Volumes
- Partage des données de volume et du stockage entre plusieurs conteneurs et systèmes de fichiers hôtes.
- Découpler les conteneurs du stockage.
- Ne supprime pas les données contenues lors de la suppression du conteneur.
- Sauvegardez, restaurez et migrez facilement les données.
Dans ce tutoriel, nous expliquerons ce qu'est un volume Docker et comment l'utiliser, ainsi que comment monter un volume dans Docker.
Conditions
- Un système sous Linux avec Docker installé.
- Un mot de passe root est configuré.
Syntaxe de base du volume Docker
Vous pouvez utiliser la commande « docker volume » pour voir toutes les options disponibles avec volume :
volume du dockerVous devriez voir la sortie suivante après avoir entré la commande ci-dessus :
Utilisation: docker volume COMMANDEGé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 monvolumeVous devriez voir la sortie suivante :
monvolumeVous pouvez répertorier votre volume existant à l'aide de la commande suivante :
docker volume lsVous devriez voir la sortie suivante :
NOM DU VOLUME DU PILOTElocal c2d2815ba1a75fbfe5d0a4b69d94269e55ccbc138c7d2e19504e501f1dbe634f
monvolume local
Si vous souhaitez voir plus d'informations sur le volume, exécutez la commande suivante :
docker inspecte monvolumeVous 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-imagesPar 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 ubuntuCette 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' localementdernier : 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é] :/# lsVous devriez voir le répertoire de données dans la sortie suivante :
bin boot data dev etc home lib lib32 lib64 libx32 media mntopt 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.SMSQuittez le conteneur avec la commande suivante :
sortirRedémarrez le même conteneur avec la commande suivante :
conteneur docker start volumecontainerEnsuite, attachez le conteneur en cours d'exécution avec la commande suivante :
docker exec -it volumecontainer /bin/bashVérifiez si votre fichier.txt est persistant avec les éléments suivants :
données/fichier de chat.SMSVous 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 ubuntuExécutez la commande ls, comme indiqué ci-dessous :
lsVous devriez voir le répertoire de données dans la sortie suivante :
bin boot data dev etc home lib lib32 lib64 libx32media 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.SMSVous 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_imageCréez un répertoire nommé /data dans l'hôte Docker avec la commande suivante :
mkdir /DonnéesEnsuite, créez des fichiers dans le répertoire /Data :
cd /Donnéestoucher 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 ubuntuCette 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-volumePar exemple, pour supprimer le volume nommé myvolume, exécutez la commande suivante :
docker volume rm monvolumeVous 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 volumecontainer1conteneur 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.