Maison >Opération et maintenance >Docker >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!