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

Comment créer des volumes Docker sous Windows en toute simplicité

Les volumes Docker sont le moyen privilégié de gérer les données persistantes créées et utilisées par les conteneurs Docker. Voyons comment cela fonctionne en expliquant comment créer des volumes Docker sous Windows. Vous apprendrez également à les gérer !

Ce billet de blog contient une vidéo complémentaire créée par le contributeur de TechSnips, Matt McElreath. N'hésitez pas à avoir une montre ou, si vous préférez le texte, lisez la suite !

Stocker des données persistantes

Si vous souhaitez stocker des données persistantes pour les conteneurs, il existe plusieurs options. Tout d'abord, je vais vous montrer comment utiliser un montage lié . Je suis actuellement dans un dossier appelé data sur mon C:\ . Si je liste le contenu de ce dossier, vous pouvez voir que j'ai cinq fichiers texte.

Si je veux rendre ce dossier disponible pour un conteneur, je peux le monter au démarrage du conteneur.

Allons-y et exécutons un conteneur en utilisant docker run . Je vais exécuter ce conteneur en mode interactif, puis spécifier -V . Ici, je vais mettre le chemin de mon dossier de données, suivi de deux-points, puis je spécifierai le chemin à l'intérieur du conteneur où je souhaite que ce dossier soit monté.

Pour cela, je vais spécifier le C:\shareddata dossier. Ensuite, je spécifierai l'image principale du serveur Windows et enfin, je spécifierai que je souhaite exécuter PowerShell une fois dans le conteneur.

docker run -it -v c:\Data:c:\shareddata microsoft/windowsservercore powershell

Maintenant que je suis dans le nouveau conteneur, si je liste le contenu de C:\ , vous pouvez voir que j'ai un shareddata dossier.

Allons dans ce dossier et listons le contenu. Voici mes cinq fichiers de test qui se trouvent sur mon hôte de conteneur.

Je peux également créer des fichiers dans ce dossier, qui seront disponibles pour d'autres conteneurs ou mon hôte de conteneur. Allons-y et exécutons un nouvel élément pour créer un fichier appelé containertest .

Nous pouvons voir ci-dessus que le nouveau fichier a été créé à partir du conteneur. Maintenant, je vais quitter ce conteneur qui le fermera en exécutant exit .

Si je lance docker ps , vous pouvez voir qu'il n'y a actuellement aucun conteneur en cours d'exécution.

Énumération des données dans les volumes Docker

Maintenant, répertorions à nouveau le contenu du dossier de données de mon hôte de conteneur.

Nous pouvons voir le nouveau fichier qui a été créé à l'intérieur du conteneur appelé containertest . Cependant, les montages liés ont des fonctionnalités limitées, les volumes sont donc le moyen préféré pour accomplir ce que nous essayons de faire. Pour commencer avec les volumes, nous pouvons exécuter la même commande pour démarrer un conteneur, mais cette fois avec quelques petites différences. Là où nous avons spécifié le volume, au lieu d'utiliser le chemin sur le système de fichiers des hôtes du conteneur, je vais utiliser le mot hostdata comme nom d'un volume que je veux créer et utiliser.

Depuis l'intérieur du nouveau conteneur, si je liste le contenu de C:\ , vous pouvez voir à nouveau que j'ai un dossier appelé shareddata .

Si je liste le contenu de ce dossier, il est actuellement vide car nous avons créé un volume vierge. Exécutons maintenant Ctrl-P-Q qui nous sortira du conteneur en cours d'exécution, mais le maintiendra en arrière-plan.

Depuis l'hôte du conteneur, exécutez docker volume ls . Cela répertoriera les volumes actuels sur cet hôte de conteneur. J'ai un volume appelé hostdata , qui a été créé lorsque je l'ai spécifié dans le docker run commande.

Si je lance docker ps nous pouvons voir notre conteneur en cours d'exécution.

Arrêtez ce conteneur à l'aide de docker stop . Maintenant, nous n'avons plus de conteneurs en cours d'exécution.

Supprimez les conteneurs arrêtés en exécutant docker rm . Si je liste à nouveau les volumes, vous pouvez voir que les hostdata le volume est toujours disponible et peut être monté sur de nouveaux conteneurs.

Création de volumes Docker

Une autre façon de créer un volume consiste à utiliser le docker volume create commande. Si vous ne spécifiez pas de nom, docker lui donnera un nom qui est une longue liste de caractères aléatoires. Sinon, vous pouvez spécifier un nom ici. Je vais appeler ce volume logdata . Maintenant, nous pouvons voir qu'il est dans la liste lorsque nous listons à nouveau les volumes.

Vous allez maintenant le monter dans un nouveau conteneur. Utiliser docker run à nouveau et pour le volume, spécifiez le volume qui vient d'être créé et montez-le sur c:\logdata .

> docker run -it -v logdata:c:\logdata microsoft/windowsservercore powershell

Depuis l'intérieur du conteneur, allez dans les logdata dossier et créez quelques fichiers. Pour le moment, il n'y a pas de fichiers dans ce répertoire, alors allez-y et créez-en.

PS> New-Item -Name Log1.txt -ItemType File
PS> New-Item -Name Log2.txt -ItemType File

J'ai maintenant deux fichiers journaux dans ce répertoire.

Exécutez Ctrl-P-Q à nouveau pour quitter ce conteneur pendant qu'il est encore en cours d'exécution. Pendant que ce conteneur est en cours d'exécution, démarrez un nouveau conteneur avec le même volume monté.

> docker run -it -v logdata:c:\logdata microsoft/windowsservercore powershell

Si nous exécutons une liste sur les logdata dossier dans le nouveau conteneur, nous pouvons voir que les deux fichiers journaux sont partagés.

Maintenant, quittez ce conteneur. Vous devriez toujours avoir un conteneur en cours d'exécution et deux conteneurs sortis.

Maintenant, arrêtez tous les conteneurs en cours d'exécution, puis exécutez docker rm pour supprimer tous les conteneurs sortis.

Répertoriez les volumes. Les données de journal volume est encore disponible pour être monté sur de futurs conteneurs.

Si vous exécutez, exécutez docker volume , vous obtiendrez de l'aide sur l'utilisation de la commande.

Inspection des volumes Docker

Nous avons déjà regardé create , alors passons à inspect . Si j'exécute docker volume inspect contre les logdata volume, il renverra les propriétés de ce volume, y compris le point de montage qui est le chemin physique vers le volume sur l'hôte du conteneur.

Ouvrons ce dossier en utilisant Invoke-Item et jetez un oeil. Sous les logdata dossier, il y a un dossier appelé data . Si nous ouvrons cela, nous pouvons voir les fichiers qui ont été créés à partir du conteneur plus tôt.

Suppression de volumes Docker

Pour supprimer un volume, nous pouvons exécuter docker volume rm , suivi du nom du volume que vous souhaitez supprimer.

> docker volume rm logdata

Maintenant, si je liste les volumes, logdata n'est plus là.

Enfin, nous pouvons utiliser prune pour supprimer tous les volumes locaux inutilisés. Cela supprimera tous les volumes qui ne sont pas montés sur un conteneur en cours d'exécution ou arrêté.

Vous voulez être prudent avec cette commande, il y a donc un avertissement et une invite pour vous assurer que vous êtes sûr de vouloir le faire. Si je tape Y et appuyez sur Entrée, cela me montrera quels volumes ont été supprimés.

Et si je liste à nouveau mes volumes, vous pouvez voir qu'ils ont tous été supprimés.

Résumé

Dans cet article de blog, vous devriez avoir eu un bon aperçu de la gestion des volumes Docker dans Windows. Docker est une excellente plateforme de conteneurs. Avec sa prise en charge de Windows et vos nouvelles compétences dans la gestion des volumes Docker, vous serez imparable !


Docker
  1. Comment exécuter MySQL dans Docker Container :un guide simple et facile à suivre

  2. Comment créer une image personnalisée à partir d'un conteneur Docker

  3. Comment créer un conteneur MySQL Docker pour les tests

  4. Comment créer une image Docker à partir d'un conteneur et d'un Dockerfile

  5. Comment changer le fuseau horaire d'un conteneur Docker

Comment obtenir l'adresse IP d'un conteneur Docker à partir de l'hôte

Comment vérifier si le démon Docker ou un conteneur est en cours d'exécution

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment créer une image Docker à partir d'un conteneur en cours d'exécution

Comment créer un conteneur d'application Django Docker

Comment créer une image Windows Docker avec la balise Docker Build