Dans Docker, volume signifie « volume de données », qui peut contourner le système de fichiers commun par défaut et exister sur l'hôte sous la forme d'un fichier ou d'un répertoire normal, enregistrant ainsi les données persistantes et partageant les données entre les conteneurs.
L'environnement d'exploitation de ce tutoriel : système linux7.3, version docker-1.13.1, ordinateur Dell G3.
Que signifie le volume dans Docker ?
Docker Volume, généralement traduit par volume de données, est utilisé pour enregistrer des données persistantes. Lorsque nous exécutons une base de données telle que MySQL dans un conteneur Docker, nous sauvegardons généralement les données sur l'hôte via Docker Volume. De cette manière, même si le conteneur MySQL est supprimé, les données sont toujours enregistrées sur l'hôte, garantissant ainsi la sécurité des données. .
1. Spécifiez le volume Docker
Utilisez la commande docker run pour exécuter un conteneur Docker
docker run -itd --volume /tmp/data1:/tmp/data2 --name test ubuntu bash
Création d'un conteneur Docker basé sur l'image Ubuntu.
Le nom du conteneur est test, spécifié par l'option –name.
Docker Volume est spécifié par l'option –volume Le répertoire /tmp/data1 de l'hôte correspond au répertoire /tmp/data2 dans le conteneur un à un.
2. Afficher le volume Docker
Utilisez la commande docker inspect pour afficher les informations détaillées du conteneur Docker :
docker inspect --format= '{{json .Mounts}}' test | python -m json.tool [ { "Destination": "/tmp/data2", "Mode": "", "Propagation": "", "RW": true, "Source": "/tmp/data1", "Type": "bind" } ]
Utilisez l'option –format pour afficher de manière sélective les informations requises sur le conteneur. .Mount correspond aux informations Docker Volume du conteneur.
python -m json.tool peut formater et afficher la chaîne json de sortie.
Source représente le répertoire sur l'hôte, qui est /tmp/data1.
Destination est le répertoire du conteneur, qui est /tmp/data2.
3. Les fichiers locaux peuvent être synchronisés avec le conteneur
Créez un nouveau fichier hello.txt dans le répertoire local/tmp/data1
touch /tmp/data1/hello.txt ls /tmp/data1/ hello.txt
Le fichier hello.txt est visible dans le conteneur/tmp/data2/. directory
À l'aide de la commande docker exec, vous pouvez exécuter des commandes dans le conteneur.
docker exec test ls /tmp/data2/ hello.txt
On peut voir que les modifications dans le répertoire local /tmp/data1/ peuvent être synchronisées avec le répertoire du conteneur /tmp/data2/.
4. Les fichiers du conteneur peuvent être synchronisés avec l'hôte
Créez un nouveau fichier world.txt dans le répertoire containers/tmp/data2
docker exec test touch /tmp/data2/world.txt docker exec test ls /tmp/data2/ hello.txt world.txt
Le fichier world.txt est visible dans le répertoire host/tmp/data1/
ls /tmp/data1/ hello.txt world.txt
On peut voir que dans Les modifications apportées au répertoire du conteneur /tmp/data2/ peuvent être synchronisées avec le répertoire hôte /tmp/data1/.
5. Conclusion
Docker Volume est essentiellement un répertoire ou un fichier partagé entre le conteneur et l'hôte, afin que les données du Docker Volume puissent être synchronisées en temps réel entre l'hôte et le conteneur. Lorsque vous utilisez Virtualbox pour créer une machine virtuelle, vous pouvez également configurer un répertoire partagé, très similaire à Docker Volume.
Apprentissage recommandé : "Tutoriel vidéo Docker"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!