Maison  >  Article  >  Opération et maintenance  >  Les données seront-elles perdues après le redémarrage de Docker ?

Les données seront-elles perdues après le redémarrage de Docker ?

尚
original
2020-03-26 14:11:0013452parcourir

Les données seront-elles perdues après le redémarrage de Docker ?

Lorsque vous utilisez Docker pour déployer des applications Web ou des bases de données MySQL, vous constaterez que lorsque le conteneur est redémarré, les journaux ou les données de base de données générés lors de l'exécution du conteneur seront effacés.

Solution :

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

1. Lors de la création d'un conteneur, exécutez Docker Volume

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

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

Création d'un conteneur Docker basé sur image Ubuntu/nginx.

Le nom du conteneur spécifié est 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, c'est-à-dire /tmp/source .

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

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

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

touchez /tmp/source/hello .txtls /tmp/source/hello.txt

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

Utilisez la commande docker exec pour 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 la machine hôte peuvent être synchronisées avec le répertoire du conteneur /tmp/destination/.

4. Le fichier conteneur peut être synchronisé avec la machine 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

Pour plus de tutoriels connexes, veuillez faire attention à la colonne docker tutoriel sur le site Web PHP chinois.

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