Maison  >  Article  >  Opération et maintenance  >  Les données seront-elles perdues si vous arrêtez le conteneur Docker ?

Les données seront-elles perdues si vous arrêtez le conteneur Docker ?

青灯夜游
青灯夜游original
2022-02-23 16:38:1512597parcourir

Arrêtez le conteneur Docker et les données ne seront pas perdues. Lorsque le conteneur Docker s'arrête et quitte, il sera dans l'état quitté. Les données qu'il contient ne seront pas perdues et pourront être visualisées via « docker ps -a » uniquement lorsque le conteneur sera supprimé, les données seront effacées avec ; la suppression du conteneur.

Les données seront-elles perdues si vous arrêtez le conteneur Docker ?

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version docker-1.13.1, ordinateur Dell G3.

Arrêtez le conteneur Docker et les données ne seront pas perdues.

Lorsque le conteneur Docker s'arrête et quitte, il sera dans l'état quitté, ce qui équivaut à arrêter la machine virtuelle, il n'y aura donc aucune perte de données.

À ce stade, vous pouvez le visualiser via docker ps -a, et vous pouvez également le démarrer via docker start Seule la suppression du conteneur effacera les données.

Seulement après docker rm, la suppression du conteneur effacera les données.

Créez un conteneur puis supprimez le conteneur. Les données seront également supprimées lorsque le conteneur est supprimé

Comment supprimer le conteneur sans supprimer les donnéesdockerrun-vhost_dir:containere_dirCela peut résoudre votre problème !

Connaissances étendues : Lorsque le conteneur est redémarré, les données du journal ou de la base de données générées lors de l'exécution du conteneur seront effacées.

Solution :

Docker peut stocker des données de manière permanente en montant le répertoire du disque hôte.

1. Exécutez Docker Volume lors de la création d'un conteneur

Utilisez la commande docker run pour exécuter un conteneur Docker, utilisez l'image ubuntu/nginx, montez le répertoire local /tmp/source dans le répertoire du conteneur /tmp/destination

docker run -itd --volume /tmp/source:/tmp/destination --name test ubuntu/nginx bash

Basé sur Ubuntu/ L'image nginx crée un conteneur Docker.

Spécifiez le nom du conteneur comme test, spécifié par l'option ––name.

Docker Volume est spécifié par l'option ––volume (peut être abrégé en -v) Le répertoire /tmp/source de l'hôte correspond au répertoire /tmp/destination dans le conteneur.

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/destination”,“Mode”: “”,“Propagation”: “”,“RW”: true,“Source”: “/tmp/source”,“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/source .

Destination est le répertoire du conteneur, qui est /tmp/destination.

3. Les fichiers natifs peuvent être synchronisés avec le conteneur

Créez un nouveau fichier hello.txt dans le répertoire native/tmp/source

touch /tmp/source/hello.txtls /tmp/source/hello.txt

Le fichier hello.txt est visible dans le répertoire conteneur/tmp/destination/

Utilisation la commande docker exec, vous pouvez exécuter des commandes dans le conteneur.

docker exectest ls /tmp/destination/hello.txt

Ainsi, les modifications apportées au répertoire /tmp/source/ sur l'hôte peuvent être synchronisées avec le répertoire du conteneur /tmp/destination/.

4. Les fichiers du conteneur peuvent être synchronisés avec l'hôte

Créez un nouveau fichier world.txt dans le répertoire conteneur/tmp/destination

docker exec test touch /tmp/destination/world.txtdocker exec test ls /tmp/destination/hello.txtworld.txt

Le fichier world.txt est visible dans le répertoire host/tmp/source/

ls /tmp/source/hello.txt world.txt

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn