Comment lister tous les volumes Docker

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

Les volumes Docker sont une fonctionnalité puissante qui vous permet de conserver des données indépendamment des cycles de vie des conteneurs. Dans ce tutoriel, nous allons explorer comment lister tous les volumes Docker, vous fournissant les connaissances nécessaires pour gérer et utiliser efficacement vos solutions de stockage Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") subgraph Lab Skills docker/ls -.-> lab-416186{{"Comment lister tous les volumes Docker"}} docker/inspect -.-> lab-416186{{"Comment lister tous les volumes Docker"}} docker/create -.-> lab-416186{{"Comment lister tous les volumes Docker"}} docker/volume -.-> lab-416186{{"Comment lister tous les volumes Docker"}} docker/info -.-> lab-416186{{"Comment lister tous les volumes Docker"}} end

Introduction aux volumes Docker

Les volumes Docker sont un moyen de conserver les données générées par un conteneur Docker. Les volumes sont conçus pour être indépendants du cycle de vie du conteneur, permettant de stocker et d'accéder aux données même après que le conteneur a été arrêté, supprimé ou recréé.

Les volumes offrent plusieurs avantages par rapport à l'utilisation directe du système de fichiers du conteneur :

  1. Persistence des données : Les volumes garantissent que les données ne sont pas perdues lorsque le conteneur est supprimé, offrant un stockage de données à long terme.
  2. Partage de données : Les volumes peuvent être partagés entre plusieurs conteneurs, permettant l'échange et la collaboration sur les données.
  3. Performances : Les volumes peuvent offrir de meilleures performances que l'utilisation du système de fichiers du conteneur, en particulier pour les applications intensives en E/S.
  4. Sauvegarde et restauration : Les volumes peuvent être facilement sauvegardés, restaurés et migrés, facilitant ainsi la gestion et la protection de vos données.

Docker prend en charge plusieurs types de volumes, notamment :

  • Volumes nommés : Ce sont des volumes avec un nom unique qui peuvent être gérés indépendamment des conteneurs qui les utilisent.
  • Volumes anonymes : Ce sont des volumes qui sont automatiquement créés lorsque le conteneur est démarré, et leurs noms sont générés par Docker.
  • Points de montage liés (Bind Mounts) : Ils vous permettent de monter un répertoire de la machine hôte dans le conteneur, offrant un moyen de partager des données entre l'hôte et le conteneur.

Pour créer un volume nommé, vous pouvez utiliser la commande docker volume create :

docker volume create my-volume

Cela créera un nouveau volume nommé my-volume que vos conteneurs pourront utiliser.

graph TD A[Docker Host] --> B[Docker Engine] B --> C[Container 1] B --> D[Container 2] C --> E[Named Volume] D --> E[Named Volume]

Dans l'exemple ci-dessus, le volume nommé my-volume est partagé entre deux conteneurs, leur permettant d'accéder et de modifier les mêmes données.

Lister et inspecter les volumes Docker

Lister les volumes Docker

Pour lister tous les volumes créés sur votre hôte Docker, vous pouvez utiliser la commande docker volume ls :

docker volume ls

Cela affichera une liste de tous les volumes, y compris leurs noms et pilotes (drivers).

Vous pouvez également filtrer la liste des volumes en utilisant l'option --filter. Par exemple, pour lister uniquement les volumes nommés :

docker volume ls --filter type=volume

Inspecter les volumes Docker

Pour obtenir des informations détaillées sur un volume spécifique, vous pouvez utiliser la commande docker volume inspect. Par exemple, pour inspecter le volume my-volume :

docker volume inspect my-volume

Cela affichera une réponse au format JSON avec des informations sur le volume, telles que son nom, son pilote (driver), son point de montage (mountpoint), etc.

Vous pouvez également utiliser l'option --format pour personnaliser la sortie. Par exemple, pour obtenir le point de montage du volume my-volume :

docker volume inspect --format '{{ .Mountpoint }}' my-volume

Cela affichera le chemin sur l'hôte Docker où le volume est monté.

Lister les volumes utilisés par un conteneur

Pour lister les volumes utilisés par un conteneur spécifique, vous pouvez utiliser la commande docker inspect. Par exemple, pour lister les volumes utilisés par le conteneur my-container :

docker inspect my-container | grep -i "Mounts"

Cela affichera une liste des volumes montés sur le conteneur, y compris leur source, leur destination et leur mode.

Gérer et utiliser les volumes Docker

Créer et monter des volumes

Pour créer un nouveau volume et le monter sur un conteneur, vous pouvez utiliser le flag --mount avec la commande docker run. Par exemple, pour créer un nouveau volume nommé my-volume et le monter sur le répertoire /data à l'intérieur du conteneur my-container :

docker run -d --name my-container --mount source=my-volume,target=/data nginx

Alternativement, vous pouvez utiliser le flag --volume (ou -v) pour obtenir le même résultat :

docker run -d --name my-container -v my-volume:/data nginx

Supprimer des volumes

Pour supprimer un volume, vous pouvez utiliser la commande docker volume rm. Par exemple, pour supprimer le volume my-volume :

docker volume rm my-volume

Notez que vous ne pouvez supprimer que les volumes qui ne sont pas utilisés par aucun conteneur. Si un volume est en cours d'utilisation, vous devrez arrêter et supprimer les conteneurs qui l'utilisent avant de pouvoir supprimer le volume.

Sauvegarder et restaurer des volumes

Pour sauvegarder un volume, vous pouvez utiliser la commande docker run pour créer un nouveau conteneur qui exporte le contenu du volume dans un archive tar. Par exemple :

docker run --rm --volumes-from my-container -v $(pwd):/backup busybox tar cvf /backup/my-volume.tar /data

Cela créera un fichier my-volume.tar dans le répertoire actuel contenant le contenu du volume my-volume.

Pour restaurer le volume, vous pouvez utiliser la commande docker run pour créer un nouveau conteneur qui importe l'archive tar dans un volume :

docker run --rm -v my-volume:/data -v $(pwd):/backup busybox tar xvf /backup/my-volume.tar

Cela restaurera le contenu du fichier my-volume.tar dans le volume my-volume.

Utiliser des volumes avec LabEx

LabEx offre un moyen pratique de gérer et d'utiliser les volumes Docker. Avec LabEx, vous pouvez facilement créer, monter et gérer des volumes, ainsi que effectuer des opérations de sauvegarde et de restauration. LabEx propose également des fonctionnalités avancées telles que la réplication de volumes et la haute disponibilité, ce qui en fait un outil puissant pour gérer vos applications basées sur Docker.

Résumé

À la fin de ce tutoriel, vous aurez une compréhension complète de la manière de lister et d'inspecter les volumes Docker, ainsi que de les gérer et de les utiliser efficacement dans votre environnement Docker. Ces connaissances vous aideront à maintenir une configuration Docker bien organisée et efficace, garantissant la longévité et la fiabilité de votre stockage de données.