GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Expliquer les volumes Docker avec des exemples

Dans le cas de Docker , les données seront stockées à l'intérieur du conteneur. Et lorsque nous supprimons le conteneur, les données seront perdues. Dans ce guide, nous apprendrons comment créer des volumes docker, comment les attacher aux conteneurs et comment le même volume peut être partagé entre deux ou plusieurs conteneurs pour stocker les données.

Si vous ne connaissez pas encore les bases de Docker, consultez le guide suivant :

  • Premiers pas avec Docker

Pourquoi avons-nous besoin de volumes pour Docker ?

  • Lors de la suppression des conteneurs, les volumes ne seront pas supprimés.
  • Attacher ou détacher le volume aux conteneurs.
  • Partager des volumes (stockage/données) entre différents conteneurs.
  • Découpler les conteneurs du stockage.
  • Stocker le volume sur un hôte distant ou dans le cloud.

Nous pouvons avoir une division logique des données ainsi que du conteneur. Nous pouvons conserver les données de telle sorte que si nous supprimons
le conteneur alors aussi nos données seront présentes. Ainsi, après avoir détruit le conteneur, nous pouvons attacher le volume à tous les conteneurs existants ainsi qu'à un nouveau conteneur.

Premiers pas avec les volumes Docker

Le volume docker La commande affichera les détails des commandes de volume par lesquelles nous pouvons créer un volume, inspecter les données détaillées du volume, répertorier les volumes disponibles et supprimer les volumes.

# docker volume

Afficher la section d'aide de la commande "docker volume"

Créer des volumes Docker

La syntaxe pour créer un volume docker est :

docker volume create <volume_name>

Exemple :

# docker volume create devops_volume

La commande ci-dessus créera un volume docker nommé devops_volume .

créer un volume docker

Répertorier les volumes Docker

Pour répertorier tous les volumes Docker créés, exécutez :

# docker volume ls

lister les volumes docker

Inspecter les volumes Docker

L'inspection du volume docker La commande vous donnera les détails sur la création du volume, l'emplacement, le nom et la portée.

Syntaxe :

docker volume inspect <volume_name>

Laissez-moi vous montrer les détails d'un volume docker nommé devops_volume .

# docker volume inspect devops_volume

inspecter les volumes docker

Créer des conteneurs avec le volume qui leur est attaché

Syntaxe :

docker container create --name <container_name> -it --mount source<volume_name>,target=/<folder_Name> <image_name>

Exemple :

# docker container create --name myBusyBox1 -it --mount source=devops_volume,target=/app busybox

créer un conteneur avec le volume qui lui est attaché

Pour vérifier si le conteneur a été créé ou non, utilisez docker ps -a commande :

Sortie de la commande "docker ps"

Démarrage des conteneurs

Pour démarrer le conteneur nouvellement créé, par exemple myBusyBox1 , exécutez :

# docker container start myBusyBox1

démarrer les conteneurs Docker

Comme vous le voyez dans la capture d'écran ci-dessus, le conteneur myBusyBox1 a été créé il y a 8 minutes et démarré il y a 6 secondes.

Copier des fichiers entre conteneurs à partir d'un volume partagé

Créons un scénario dans lequel nous créerons le fichier dans un conteneur à l'emplacement partagé et nous essaierons d'accéder au fichier à partir d'un autre conteneur.

Nous avons déjà créé un conteneur nommé myBusyBox1. Créons-en un autre, par exemple myBusyBox2 .

créer un conteneur

Nous avons maintenant deux conteneurs en cours d'exécution, myBusyBox1 et myBusyBox2.

Connectons-nous au premier conteneur et créons un fichier dans /app dossier.

# docker exec -it myBusyBox1 sh

La commande ci-dessus vous emmènera à l'intérieur du conteneur.

Ensuite, créez un nouveau dossier appelé devops dans le dossier /app et quittez le premier conteneur.

se connecter au premier conteneur

Maintenant, copiez un fichier, par exemple index.html , du système local à l'emplacement /app/devops/ du conteneur myBusyBox1.

# docker container cp index.html myBusyBox1:/app/Devops

Connectez-vous maintenant à un autre deuxième conteneur, c'est-à-dire myBusyBox2 et vérifiez que dans /app/devops dossier le index.html fichier est présent ou non.

# docker exec -it myBusyBox2 sh

se connecter au deuxième conteneur

La capture d'écran ci-dessus confirme que les deux conteneurs partagent le même volume.

Nous pouvons vérifier l'emplacement du point de montage du volume à l'aide de docker volume inspect commande comme ci-dessous :

# docker volume inspect devops_volume

docker inspecter la commande de volume

Comme vous le voyez, l'emplacement du point de montage est /var/lib/docker/volumes/devops_volume/_data .

Allons à l'emplacement du point de montage et voyons si le fichier copié est disponible ou non.

point de montage des volumes docker

Dans l'emplacement Mountpoint, nous avons trouvé le même fichier.

Supprimer les volumes Docker

La syntaxe pour supprimer un volume est :

docker volume rm <volume_name>

Supprimons le volume appelé devops_volume .

# docker volume rm devops_volume

supprimer un volume docker

Dans la capture d'écran ci-dessus, nous essayons de supprimer le volume mais nous ne pouvons pas le supprimer car le volume est déjà utilisé. Nous devons donc d'abord tuer le conteneur et libérer du volume. Et puis nous pouvons supprimer le volume.

Pour ce faire, supprimez d'abord tous les conteneurs en cours d'exécution à l'aide de la commande :

# docker rm –f $(docker ps -aq)

Et puis supprimez le volume :

# docker volume rm devops_volume

supprimer les volumes docker

Supprimer tous les volumes d'un coup

Utilisation de docker rm commande, nous pouvons supprimer un volume à la fois. Si nous avons plusieurs volumes et que nous voulons supprimer tous les volumes, nous devons utiliser prune commande.

Créons quelques volumes :

créer des volumes Docker

Supprimez maintenant tous les volumes Docker en une seule fois à l'aide de la commande :

# docker volume prune

supprimer tous les volumes docker d'un coup

Voir? Nous avons supprimé tous les volumes en une seule fois.

Suggestion de lecture :

  • Expliquer les concepts de mise en réseau Docker
  • Comment mettre à jour automatiquement les conteneurs Docker en cours d'exécution
  • ctop – Un outil de surveillance en ligne de commande pour les conteneurs Linux
  • Portainer – Le moyen le plus simple de gérer Docker
  • PiCluster :une application Web simple de gestion Docker
  • Dockly – Gérer les conteneurs Docker depuis le terminal

À propos de l'auteur :

Dhruv Tiwari est un ingénieur DevOps qui aime automatiser les choses, travailler avec Linux à grande échelle et rêver du jour où les systèmes seront suffisamment intelligents pour ne jamais avoir besoin de se connecter à une machine Linux. Journey Of CI/CD du code source au déploiement du code jusqu'à la production.


Docker
  1. Qu'est-ce que Docker ? Apprenez à utiliser les conteneurs - Expliqué avec des exemples

  2. Journaux Docker :ce qu'ils sont et comment les utiliser (avec exemples)

  3. Créer des volumes logiques sous Linux avec LVM

  4. Comment installer Jenkins avec Docker

  5. Comprendre les volumes Docker

Commande Netcat (nc) avec exemples

15 Commande Linux ps avec exemples

Expliquer les concepts de mise en réseau Docker

Améliorez votre jeu DevOps avec ces exemples d'exécution Docker

Comment exécuter Jenkins dans Docker à l'aide de Docker Compose avec des volumes

20 exemples de commandes de volume Docker utiles pour les développeurs modernes