Docker a trois types de supports de données qui peuvent aider - volumes, lier des supports et TMPF. Les volumes stockent les données du système de fichiers de l'hôte, mais il est géré par Docker. Les montures de liaison aident à stocker les données n'importe où sur le système hôte et les utilisateurs peuvent modifier directement les fichiers à partir des propres processus de l'hôte. Les supports TMPFS sont stockés uniquement dans la mémoire de l'hôte. Les volumes Docker sont la meilleure option car ils sont les plus sûrs à utiliser.
Comment utiliser les volumes Docker
Essayons un exemple pratique. Nous allons créer quelques conteneurs Ubuntu qui partagent le même volume.
Tout d'abord, nous voulons créer le volume avec la commande suivante:
$ Volume Docker Créer My-COMMON-VOL
Nous pouvons maintenant vérifier si le volume existe:
$ volume docker ls
Nom du volume du conducteur
My-Common-vol local
Nous pouvons en outre inspecter le volume pour vérifier ses propriétés:
$ volume docker inspecter mon-commun-vol
[
"Createdat": "2018-04-06T07: 43: 02Z",
"Driver": "local",
"Étiquettes": ,
"MountPoint": "/ var / lib / docker / volumes / my-common-vol / _data",
"Nom": "My-Common-vol",
"Options": ,
"Scope": "local"
]]
Il est important de se rappeler que Mountpoint est en fait à l'intérieur de la machine virtuelle sur laquelle Docker fonctionne. Donc, ce n'est pas directement accessible.
Commençons maintenant notre premier serveur avec My-Common-vol.
(Remarque pour la commande docker run, vous pouvez utiliser les options -mount et -v pour monter un volume. La syntaxe des deux est différente. Nous utiliserons la dernière option de montage car c'est la dernière.)
$ docker run --name server1 - mate source = my-common-vol, cible = / app -it ubuntu
Nous montons le dossier My-Common-vol to / App sur le conteneur Docker Server1. La commande ci-dessus doit vous connecter au serveur Ubuntu1. Dans la ligne de commande, accédez au dossier / App et créez un fichier:
root @ 1312ea074055: / # CD / AppNous avons donc le fichier créé sur server1.txt dans le dossier / app.
Allons créer un deuxième serveur et monter le même volume My-Common-vol:
$ docker run --name server2 - mate source = my-common-vol, cible = / src -it ubuntu
Maintenant, nous pouvons aller dans le dossier / src dans Server2, vérifier les fichiers Server1 et créer un nouveau fichier:
root @ 77cd51945461: / # cd / srcDans le dossier / src, nous voyons que Created-on-Server1.txt existe déjà. Nous ajoutons créé sur server2.SMS. Nous pouvons vérifier sur Server1 et voir que Created-on-Server2.txt apparaît.
Commençons un nouveau Container Server3 qui n'aura un accès en lecture seule au volume My-Common-Vol:
$ docker run --name server3 - mate source = my-common-vol, cible = / test, readonly -it ubuntu
Nous avons donc créé Server3 avec My-Common-vol monté sur / test.
Essayons d'écrire quelque chose dans / test:
root @ a6620da1eea1: / # test CDVous pouvez voir que nous ne pouvons pas écrire sur My-Common-vol depuis Server3.
Vous pouvez supprimer des volumes. Mais vous devez supprimer tous les conteneurs associés avant de pouvoir essayer. Sinon, vous obtiendrez une erreur comme ceci:
$ Docker Volume RM My-Common-vol
Réponse d'erreur de Daemon: Impossible de supprimer le volume: supprimer My-Common-Vol:
Le volume est utilisé - [1312ea07405528bc65736f56692c06f04280779fd283a81f59f8477f28ae35ba,
77CD51945461FA03F572EA6830A98A16ECE47B4F840C2EDFC2955C7C9A6D69D2,
A6620DA1EEA1A39D64F3ACDF82B6D70309EE2F8D1F2C6B5D9C98252D5792EA59]
Dans notre cas, nous pouvons retirer les conteneurs et le volume comme celui-ci:
$ docker conteneur RM Server1
$ docker conteneur rm server2
$ docker conteneur RM Server3
$ Docker Volume RM My-Common-vol
De plus, si vous souhaitez monter plusieurs volumes, l'option de la commande de la commande «Docker Run» le permet aussi.
Une étude plus approfondie: