Comment utiliser la commande docker volume rm pour supprimer des 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 à gérer les volumes Docker à l'aide de la commande docker volume rm. Vous commencerez par créer un volume, puis vous pratiquerez sa suppression.

En outre, vous explorerez des scénarios où un volume est utilisé par un conteneur et tenterez de le supprimer. Vous comprendrez le comportement par défaut et comment forcer la suppression d'un volume actuellement attaché à un conteneur en cours d'exécution.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/run -.-> lab-555262{{"Comment utiliser la commande docker volume rm pour supprimer des volumes"}} docker/ls -.-> lab-555262{{"Comment utiliser la commande docker volume rm pour supprimer des volumes"}} docker/ps -.-> lab-555262{{"Comment utiliser la commande docker volume rm pour supprimer des volumes"}} docker/rm -.-> lab-555262{{"Comment utiliser la commande docker volume rm pour supprimer des volumes"}} docker/inspect -.-> lab-555262{{"Comment utiliser la commande docker volume rm pour supprimer des volumes"}} docker/create -.-> lab-555262{{"Comment utiliser la commande docker volume rm pour supprimer des volumes"}} docker/volume -.-> lab-555262{{"Comment utiliser la commande docker volume rm pour supprimer des volumes"}} end

Créer un volume

Dans cette étape, vous apprendrez à créer un volume 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, vous utilisez la commande docker volume create suivie du nom que vous souhaitez attribuer au volume. Créons un 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, vérifions que le volume a été créé en listant tous les volumes disponibles à l'aide de la commande docker volume ls.

docker volume ls

Vous devriez voir myvolume répertorié dans la sortie.

Tenter de supprimer le volume

Dans cette étape, vous allez tenter de supprimer le volume que vous avez créé à l'étape précédente. Pour supprimer un volume Docker, vous utilisez la commande docker volume rm suivie du nom du volume.

Essayons de supprimer le volume myvolume.

docker volume rm myvolume

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

Maintenant, vérifions que le volume a été supprimé en listant à nouveau tous les volumes disponibles.

docker volume ls

Vous ne devriez plus voir myvolume dans la sortie.

Supprimer le volume

Dans l'étape précédente, vous avez tenté de supprimer le volume. Maintenant, assurons-nous qu'il est bien supprimé. Vous utilisez la même commande docker volume rm suivie du nom du volume.

docker volume rm myvolume

Si le volume a été supprimé avec succès à l'étape précédente, vous pourriez voir une erreur indiquant que le volume n'a pas été trouvé. C'est normal et cela confirme que le volume a été supprimé. Si le volume n'a pas été supprimé à l'étape précédente, cette commande le supprimera maintenant.

Pour confirmer que le volume a été supprimé, liste à nouveau les volumes.

docker volume ls

Le volume myvolume ne devrait pas apparaître dans la liste.

Créer un volume et un conteneur l'utilisant

Dans cette étape, vous allez créer un nouveau volume, puis un conteneur Docker qui utilisera ce volume pour conserver des données.

Tout d'abord, créons un nouveau volume nommé mydata.

docker volume create mydata

Ensuite, nous allons exécuter un simple conteneur ubuntu et monter le volume mydata sur le répertoire /app à l'intérieur du conteneur. Nous allons également exécuter une commande qui écrit du texte dans un fichier au sein du volume monté.

Avant d'exécuter le conteneur, téléchargeons l'image ubuntu pour nous assurer qu'elle est disponible localement.

docker pull ubuntu

Maintenant, exécutons le conteneur et écrivons dans le volume :

docker run -d --name mycontainer -v mydata:/app ubuntu bash -c "echo 'Hello from the volume!' > /app/greeting.txt && tail -f /dev/null"

Décortiquons cette commande :

  • docker run : Commande pour exécuter un nouveau conteneur.
  • -d : Exécute le conteneur en mode détaché (en arrière-plan).
  • --name mycontainer : Assigne le nom mycontainer au conteneur.
  • -v mydata:/app : Il s'agit du montage du volume. Il monte le volume Docker nommé mydata sur le répertoire /app à l'intérieur du conteneur.
  • ubuntu : L'image Docker à utiliser.
  • bash -c "echo 'Hello from the volume!' > /app/greeting.txt && tail -f /dev/null" : La commande à exécuter à l'intérieur du conteneur. Elle écrit "Hello from the volume!" dans un fichier nommé greeting.txt dans le répertoire /app (qui est le volume monté), puis exécute tail -f /dev/null pour maintenir le conteneur en cours d'exécution.

Pour vérifier que le conteneur est en cours d'exécution et que le volume est attaché, vous pouvez inspecter le conteneur.

docker inspect mycontainer

Recherchez la section "Mounts" dans la sortie. Vous devriez voir une entrée pour le volume mydata monté sur /app.

Tenter de supprimer un volume en utilisation

Dans cette étape, vous allez tenter de supprimer le volume mydata alors qu'il est toujours utilisé par le conteneur mycontainer. Cela montrera ce qui se passe lorsque vous essayez de supprimer un volume qui est activement monté sur un conteneur en cours d'exécution.

Utilisez la commande docker volume rm pour essayer de supprimer le volume mydata.

docker volume rm mydata

Vous devriez voir un message d'erreur indiquant que le volume est en utilisation et ne peut pas être supprimé. C'est un comportement attendu. Docker vous empêche de supprimer un volume qui est actuellement attaché à un conteneur en cours d'exécution pour éviter la perte de données ou un comportement inattendu.

Pour confirmer que le volume n'a pas été supprimé, liste à nouveau les volumes.

docker volume ls

Vous devriez toujours voir mydata dans la sortie.

Forcer la suppression d'un volume en utilisation

Dans l'étape précédente, vous avez appris que vous ne pouvez pas supprimer un volume qui est actuellement utilisé par un conteneur en cours d'exécution. Cependant, il peut y avoir des situations où vous devez supprimer un volume même s'il est en utilisation. Docker propose un moyen de forcer la suppression d'un volume en utilisant le drapeau -f ou --force avec la commande docker volume rm.

Remarque : Forcer la suppression d'un volume en utilisation peut entraîner une perte de données et un comportement inattendu pour le conteneur qui l'utilise. Utilisez cette option avec prudence.

Essayons de forcer la suppression du volume mydata tandis que le conteneur mycontainer est toujours en cours d'exécution.

docker volume rm -f mydata

Vous devriez voir le nom du volume affiché dans la console, indiquant qu'il a été supprimé.

Maintenant, vérifions que le volume a été supprimé en listant les volumes.

docker volume ls

Le volume mydata ne devrait plus figurer dans la liste.

Vous pouvez également vérifier l'état du conteneur mycontainer.

docker ps

Le conteneur mycontainer peut toujours apparaître dans la liste des conteneurs en cours d'exécution, mais il peut être dans un état non sain ou s'arrêter de manière inattendue car son volume a été supprimé.

Enfin, arrêtons et supprimons le conteneur pour nettoyer.

docker stop mycontainer
docker rm mycontainer

Résumé

Dans ce laboratoire (lab), vous avez appris à gérer les volumes Docker en utilisant la commande docker volume. Vous avez commencé par créer un volume nommé myvolume en utilisant docker volume create et avez vérifié son existence avec docker volume ls. Vous avez ensuite pratiqué la suppression du volume en utilisant docker volume rm et avez confirmé sa suppression en listant à nouveau les volumes.

Vous avez également exploré le comportement de docker volume rm lorsqu'un volume est utilisé par un conteneur. Vous avez créé un volume et un conteneur qui l'utilisait, et avez observé que la tentative de suppression directe du volume a échoué. Enfin, vous avez appris à forcer la suppression d'un volume en cours d'utilisation en ajoutant le drapeau -f à la commande docker volume rm.