Gérer les données dans les conteneurs

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

La technologie des conteneurs a révolutionné le déploiement d'applications en offrant des environnements isolés, légers et portables. Cependant, la gestion des données à l'intérieur des conteneurs pose des défis uniques, en particulier pour assurer la persistance des données au cours du cycle de vie des conteneurs. Ce défi vous guidera à travers les techniques essentielles pour une gestion efficace des données dans les conteneurs Docker.

Vous allez apprendre à créer et utiliser des volumes Docker, à les monter dans les conteneurs, à écrire et à lire des données à partir des volumes, et à effectuer des opérations de sauvegarde et de restauration. Ces compétences sont cruciales pour développer des applications conteneurisées robustes qui nécessitent un stockage persistant.

Commençons notre exploration de la gestion des données dans les conteneurs Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/run -.-> lab-15896{{"Gérer les données dans les conteneurs"}} docker/exec -.-> lab-15896{{"Gérer les données dans les conteneurs"}} docker/inspect -.-> lab-15896{{"Gérer les données dans les conteneurs"}} docker/volume -.-> lab-15896{{"Gérer les données dans les conteneurs"}} end

Créer un volume Docker

Dans cette étape, vous allez créer un volume Docker, qui est un objet géré pour stocker des données persistantes indépendamment des conteneurs.

Tâches

  1. Créez un nouveau volume Docker nommé myvolume en utilisant la commande docker volume create.
  2. Liste tous les volumes Docker pour vérifier la création de myvolume.

Exigences

  • Effectuez toutes les opérations dans le répertoire /home/labex/project.
  • Utilisez le pilote de volume par défaut lors de la création du volume.

Exemple

Après avoir terminé cette étape, exécuter docker volume ls devrait afficher une sortie similaire à :

DRIVER    VOLUME NAME
local     myvolume
✨ Vérifier la solution et pratiquer

Monter un volume Docker dans un conteneur

Maintenant que nous avons un volume, attachez-le à un conteneur. Cette étape montre comment rendre un stockage persistant disponible pour un conteneur en cours d'exécution.

Tâches

  1. Lancez un nouveau conteneur Docker nommé my-container basé sur l'image nginx.
  2. Montez le volume myvolume au chemin /app/data à l'intérieur du conteneur.
  3. Vérifiez que le volume est correctement monté en utilisant la commande docker inspect.

Exigences

  • Effectuez toutes les opérations dans le répertoire /home/labex/project.
  • Lancez le conteneur en mode détaché.
  • Utilisez l'option -v pour monter le volume lors du lancement du conteneur.

Exemple

Après avoir exécuté le conteneur, docker inspect my-container devrait afficher une sortie contenant :

"Mounts": [
    {
        "Type": "volume",
        "Name": "myvolume",
        "Source": "/var/lib/docker/volumes/myvolume/_data",
        "Destination": "/app/data",
        "Driver": "local",
        "Mode": "z",
        "RW": true,
        "Propagation": ""
    }
]
✨ Vérifier la solution et pratiquer

Écrire des données dans un volume Docker

Dans cette étape, vous allez apprendre à écrire des données dans un volume Docker monté, ce qui permet la persistance des données même si le conteneur est supprimé.

Tâches

  1. Utilisez la commande docker exec pour accéder au conteneur my-container.
  2. Créez un fichier nommé hello.txt dans le répertoire /app/data à l'intérieur du conteneur.
  3. Écrivez le contenu "Hello, World!" dans le fichier hello.txt.

Exigences

  • Effectuez toutes les opérations dans le répertoire /home/labex/project.
  • Utilisez la commande echo pour écrire le contenu dans le fichier.

Exemple

Après avoir exécuté les commandes, vous devriez être en mesure de voir le fichier :

$ docker exec my-container ls /app/data
hello.txt
✨ Vérifier la solution et pratiquer

Lire des données à partir d'un volume Docker

Maintenant que nous avons écrit des données dans notre volume, vérifions que nous pouvons les lire à nouveau, ce qui démontre la persistance des données au cours des opérations de conteneur.

Tâches

  1. Utilisez la commande docker exec pour accéder au conteneur my-container.
  2. Lisez et affichez le contenu du fichier /app/data/hello.txt.

Exigences

  • Effectuez toutes les opérations dans le répertoire /home/labex/project.
  • Utilisez la commande cat pour afficher le contenu du fichier.

Exemple

La sortie de votre commande devrait être :

Hello, World!
✨ Vérifier la solution et pratiquer

Sauvegarder et restaurer un volume Docker

Dans cette étape finale, vous allez apprendre à sauvegarder les données d'un volume Docker et à les restaurer dans un nouveau volume, ce qui est crucial pour les scénarios de migration de données et de récupération en cas de sinistre.

Tâches

  1. Créez une sauvegarde des données du volume myvolume sous forme d'un fichier tarball nommé myvolume.tar.gz dans le répertoire /home/labex/project.
  2. Créez un nouveau volume Docker nommé mynewvolume.
  3. Restaurez les données de sauvegarde dans mynewvolume.

Exigences

  • Effectuez toutes les opérations dans le répertoire /home/labex/project.
  • Utilisez docker run avec l'option --rm pour les conteneurs temporaires lors des opérations de sauvegarde et de restauration.

Exemple

Après avoir terminé le processus de sauvegarde et de restauration, la vérification du contenu du nouveau volume devrait montrer :

$ docker run --rm -v mynewvolume:/app/data alpine cat /app/data/hello.txt
Hello, World!
✨ Vérifier la solution et pratiquer

Sommaire

Dans ce défi, vous avez acquis une expérience pratique dans la gestion des données à l'intérieur de conteneurs Docker. Vous avez appris à :

  1. Créer et gérer des volumes Docker
  2. Monter des volumes sur des conteneurs
  3. Écrire des données dans et lire des données à partir de volumes
  4. Sauvegarder les données d'un volume et les restaurer dans un nouveau volume

Ces compétences sont fondamentales pour développer des applications conteneurisées robustes qui nécessitent un stockage persistant. Lorsque vous poursuivrez votre parcours Docker, rappelez-vous que la gestion efficace des données est cruciale pour maintenir l'état de l'application, assurer la durabilité des données et faciliter des processus opérationnels fluides.

Pour des scénarios plus avancés, envisagez d'explorer les pilotes de volume pour l'intégration du stockage cloud, de mettre en œuvre des stratégies de sauvegarde automatisées et d'étudier la manière dont les volumes interagissent avec Docker Swarm et Kubernetes pour des solutions de stockage distribué.