Comment utiliser la commande docker volume ls pour lister et filtrer les volumes

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

Dans ce laboratoire, vous apprendrez à utiliser efficacement la commande docker volume ls pour gérer vos volumes Docker. Nous commencerons par créer des volumes d'exemple avec lesquels travailler. Ensuite, vous découvrirez comment lister tous les volumes existants sur votre système.

En partant de la liste, vous explorerez comment filtrer les volumes en fonction de critères tels que le nom et le pilote (driver), ainsi que selon leur statut de « dangling » (en suspens). Enfin, vous apprendrez à formater la sortie de la commande docker volume ls pour une meilleure lisibilité et une extraction d'informations spécifiques.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/ls -.-> lab-555260{{"Comment utiliser la commande docker volume ls pour lister et filtrer les volumes"}} docker/rm -.-> lab-555260{{"Comment utiliser la commande docker volume ls pour lister et filtrer les volumes"}} docker/create -.-> lab-555260{{"Comment utiliser la commande docker volume ls pour lister et filtrer les volumes"}} docker/volume -.-> lab-555260{{"Comment utiliser la commande docker volume ls pour lister et filtrer les volumes"}} end

Créer des volumes d'exemple

Dans cette étape, nous apprendrons à créer des volumes Docker. Les volumes sont la méthode préférée pour conserver les données générées et utilisées par les conteneurs Docker. Alors que les montages liés (bind mounts) dépendent de la structure de répertoires de la machine hôte, les volumes sont entièrement gérés par Docker.

Pour créer un volume, nous utilisons la commande docker volume create. Créons un simple volume nommé myvolume.

docker volume create myvolume

Vous devriez voir le nom du volume affiché dans la console si la création a réussi.

Maintenant, créons un autre volume nommé another_volume.

docker volume create another_volume

Nous avons maintenant créé deux volumes qui peuvent être utilisés par les conteneurs Docker pour stocker des données persistantes.

Lister tous les volumes

Dans cette étape, nous apprendrons à lister tous les volumes Docker existants sur notre système. Cela est utile pour voir quels volumes sont disponibles et les gérer.

Pour lister tous les volumes, nous utilisons la commande docker volume ls. Cette commande vous affichera une liste de tous les volumes, y compris leur pilote (driver) et leur nom.

docker volume ls

Vous devriez voir les volumes que nous avons créés à l'étape précédente (myvolume et another_volume) répertoriés dans la sortie, ainsi que tous les autres volumes qui pourraient exister sur le système. La sortie inclut généralement le DRIVER et le VOLUME NAME.

Le pilote par défaut pour les volumes est généralement local, ce qui signifie que le volume est stocké sur la machine locale où Docker est en cours d'exécution.

Filtrer les volumes par nom et pilote (driver)

Dans cette étape, nous apprendrons à filtrer la liste des volumes Docker en fonction de leur nom et de leur pilote (driver). Cela est utile lorsque vous avez de nombreux volumes et que vous souhaitez trouver des volumes spécifiques.

Nous pouvons utiliser le drapeau --filter avec la commande docker volume ls pour filtrer la sortie. Le filtre prend une paire clé=valeur.

Pour filtrer par nom, nous utilisons la clé name. Filtrons pour le volume nommé myvolume.

docker volume ls --filter name=myvolume

Vous ne devriez voir que le myvolume répertorié dans la sortie.

Maintenant, filtrons par pilote (driver). Étant donné que nous avons utilisé le pilote par défaut lors de la création des volumes, le pilote est local. Filtrons pour les volumes utilisant le pilote local.

docker volume ls --filter driver=local

Cette commande devrait lister tous les volumes qui utilisent le pilote local, ce qui devrait inclure à la fois myvolume et another_volume.

Vous pouvez également combiner des filtres. Par exemple, pour filtrer pour un volume nommé myvolume qui utilise le pilote local, vous pouvez utiliser :

docker volume ls --filter name=myvolume --filter driver=local

Cela affichera à nouveau seulement le myvolume.

Filtrer les volumes par statut "dangling"

Dans cette étape, nous apprendrons à filtrer les volumes Docker en fonction de leur statut "dangling" (non utilisé). Un volume "dangling" est un volume qui n'est actuellement attaché à aucun conteneur. Ces volumes peuvent consommer inutilement de l'espace disque.

Pour filtrer les volumes "dangling", nous utilisons le drapeau --filter dangling=true.

Tout d'abord, créons un conteneur et attachons-lui l'un de nos volumes. Nous utiliserons l'image ubuntu. Si vous n'avez pas l'image ubuntu localement, Docker la téléchargera automatiquement.

docker run -d --name mycontainer -v myvolume:/app ubuntu sleep 3600

Cette commande exécute un conteneur nommé mycontainer en mode détaché (-d), monte le volume myvolume dans le répertoire /app à l'intérieur du conteneur (-v myvolume:/app), utilise l'image ubuntu et maintient le conteneur en cours d'exécution pendant une heure (sleep 3600).

Maintenant, listons à nouveau tous les volumes :

docker volume ls

Vous verrez à la fois myvolume et another_volume. myvolume est actuellement utilisé par mycontainer. another_volume n'est attaché à aucun conteneur, il s'agit donc d'un volume "dangling".

Maintenant, filtrons les volumes "dangling" :

docker volume ls --filter dangling=true

Vous devriez voir another_volume répertorié dans la sortie, car il n'est attaché à aucun conteneur en cours d'exécution.

Pour voir les volumes qui ne sont pas "dangling" (c'est-à-dire attachés à un conteneur), vous pouvez utiliser --filter dangling=false.

docker volume ls --filter dangling=false

Cela devrait afficher myvolume.

Enfin, arrêtons et supprimons le conteneur que nous avons créé.

docker stop mycontainer
docker rm mycontainer

Maintenant, si vous liste à nouveau les volumes "dangling" :

docker volume ls --filter dangling=true

À présent, myvolume et another_volume devraient apparaître comme "dangling", car myvolume n'est plus attaché à un conteneur.

Formater la sortie des volumes

Dans cette étape, nous apprendrons à formater la sortie de la commande docker volume ls. Cela nous permet de personnaliser les informations affichées et de les présenter d'une manière qui répond le mieux à nos besoins.

Nous pouvons utiliser le drapeau --format pour spécifier le format de sortie. Ce drapeau accepte la syntaxe des templates Go.

Listons les volumes et affichons uniquement le nom du volume. Nous pouvons utiliser le modèle {{.Name}} pour y parvenir.

docker volume ls --format "{{.Name}}"

Cette commande affichera une liste de noms de volumes, un par ligne.

Maintenant, affichons à la fois le pilote (driver) et le nom, séparés par deux points. Nous pouvons utiliser {{.Driver}}:{{.Name}}.

docker volume ls --format "{{.Driver}}:{{.Name}}"

La sortie affichera le pilote (driver) et le nom de chaque volume, comme local:myvolume.

Nous pouvons également utiliser le format table pour afficher la sortie sous forme de tableau plus lisible, similaire à la sortie par défaut mais avec plus de contrôle sur les colonnes. Affichons le pilote (driver) et le nom dans un tableau.

docker volume ls --format "table {{.Driver}}\t{{.Name}}"

Le \t est utilisé pour créer un espace de tabulation entre les colonnes. La sortie sera un tableau avec "DRIVER" et "NAME" comme en-têtes.

Enfin, nettoyons les volumes que nous avons créés lors de ce laboratoire. Nous pouvons les supprimer en utilisant la commande docker volume rm.

docker volume rm myvolume another_volume

Vous devriez voir une confirmation que les volumes ont été supprimés.

Résumé

Dans ce laboratoire, nous avons appris à gérer les volumes Docker en utilisant la commande docker volume ls. Nous avons commencé par créer des volumes d'exemple en utilisant docker volume create. Ensuite, nous avons exploré comment lister tous les volumes existants sur le système en utilisant docker volume ls.

De plus, nous avons approfondi la filtration des volumes pour trouver des volumes spécifiques. Nous avons appris à filtrer les volumes par nom et par pilote (driver) en utilisant le drapeau --filter avec les clés name et driver. Le laboratoire a également couvert la filtration des volumes en fonction de leur statut "dangling" (non utilisé) et la mise en forme de la sortie de la commande docker volume ls pour une meilleure lisibilité.