Maison > Article > Opération et maintenance > Les données seront-elles perdues si vous arrêtez le conteneur Docker ?
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.
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_dir
Cela 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!