GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Volumes Docker :comment créer et démarrer

Présentation

Les volumes Docker sont des outils largement utilisés et utiles pour assurer la persistance des données tout en travaillant dans des conteneurs. Ils constituent une meilleure alternative que la compilation de couches inscriptibles supplémentaires, qui augmentent la taille de l'image Docker.

Dans ce didacticiel, découvrez comment utiliser Docker Volumes avec des exemples pratiques.

Que sont les volumes Docker ?

Les volumes Docker sont des systèmes de fichiers montés sur des conteneurs Docker pour conserver les données générées par le conteneur en cours d'exécution.

Les volumes sont stockés sur l'hôte, indépendamment du cycle de vie du conteneur. Cela permet aux utilisateurs de sauvegarder facilement des données et de partager des systèmes de fichiers entre conteneurs.

Premiers pas avec les volumes Docker

Il existe différentes manières de monter un volume Docker lors du lancement d'un conteneur. Les utilisateurs peuvent choisir entre le -v et le --mount flags, qui sont ajoutés au docker run commande.

Cet article montre des exemples d'utilisation des deux drapeaux.

Comment créer un volume Docker

Pour créer un volume Docker, utilisez la commande :

docker volume create [volume_name]

Docker crée automatiquement un répertoire pour le volume sur l'hôte sous /var/lib/docker/volume/ chemin. Vous pouvez désormais monter ce volume sur un conteneur, garantissant ainsi la persistance et le partage des données entre plusieurs conteneurs.

Par exemple, pour créer un volume sous le nom data , vous exécuteriez la commande :

docker volume create data

Répertorier les volumes Docker

Pour vérifier que vous avez créé avec succès un volume Docker, invitez Docker à répertorier tous les volumes disponibles avec :

docker volume list

La sortie affiche une liste de volumes, spécifiant leur emplacement (DRIVER ) et leur NOM DE VOLUME . Dans l'image ci-dessous, vous pouvez voir le volume de données créé dans la section précédente.

Inspecter les volumes Docker

Pour voir plus d'informations sur un volume Docker, utilisez le inspect commande :

docker volume inspect [volume_name]

Il répertorie les détails d'un volume, y compris son emplacement sur le fichier hôte (Mountpoint ). Tout ce qui est stocké dans le volume de données se trouve également dans le répertoire répertorié sous le chemin du point de montage.

Monter un volume de données

Pour monter un volume de données sur un conteneur, ajoutez le --mount indicateur à l'docker run commande. Il ajoute le volume au conteneur spécifié, où il stocke les données produites à l'intérieur de l'environnement virtuel.

Pour exécuter un conteneur et y monter un volume de données, suivez la syntaxe de base :

docker run --mount source=[volume_name],destination=[path_in_container] [docker_image]

Remplacez [path_in_container] avec le chemin où vous souhaitez placer le volume de données dans le conteneur. Tout ce qui est stocké dans ce répertoire est également automatiquement enregistré sur le volume de données de l'hôte.

Par exemple, pour lancer un conteneur Ubuntu et monter les données volume, lancez :

docker run -it --name=example1 --mount source=data,destination=/data ubuntu

La commande demande à Docker d'exécuter un conteneur en mode interactif (-it ) de l'image Ubuntu, sous le nom example1 , lors du montage des données de volume dans /data répertoire à l'intérieur du conteneur.

Ensuite, vérifiez que le volume a été monté avec succès en répertoriant le contenu du conteneur :

ls

Recherchez le volume Docker sous le nom défini lors du lancement du conteneur. Dans cet exemple, il s'agit de données .

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

Voyons comment les volumes Docker vous permettent de partager des fichiers entre conteneurs.

Pour ce faire, nous utilisons le volume et le conteneur créés dans la section précédente. Cela comprenait l'exécution des commandes :

  • docker volume create data
  • docker run -it --name=example1 --mount source=data,destination=/data ubuntu

1. Une fois que vous êtes passé à l'invite de commande du conteneur, accédez au répertoire du volume de données :

cd data

2. Créez un fichier d'échantillon vide à l'aide de la commande touch :

touch sample1.txt

3. Maintenant, quittez le conteneur :

exit

4. Ensuite, lancez un nouveau conteneur example2 avec le même volume de données :

docker run -it --name=example2 --mount source=data,destination=/data ubuntu

5. Lister le contenu du conteneur. Vous devriez trouver le répertoire de données, comme dans example1 :

ls

6. Accédez au répertoire de données et listez-en le contenu :

cd data
ls

La sortie doit répertorier le sample1.txt fichier que vous avez créé dans le conteneur précédent (example1 ).

Monter un répertoire hôte en tant que volume de données

Vous pouvez également monter un répertoire existant de la machine hôte vers un conteneur. Ce type de volume est appelé Volumes hôtes .

Vous pouvez monter des volumes hôtes en utilisant le -v flag et en spécifiant le nom du répertoire hôte.

Tout ce qui se trouve dans le répertoire hôte est alors disponible dans le conteneur. De plus, toutes les données générées à l'intérieur du conteneur et placées dans le volume de données sont stockées en toute sécurité dans le répertoire hôte.

La syntaxe de base pour monter un répertoire hôte est :

docker run -v "$(pwd)":[volume_name] [docker_image]

Le "$(pwd)" ordonne à Docker de monter le répertoire dans lequel se trouve actuellement l'utilisateur.

L'exemple suivant décrit comment cela est fait.

1. Tout d'abord, créez un exemple de répertoire sur l'hôte sous le nom tmp et emménagez-y :

mkdir tmp
cd tmp

2. Une fois dans le répertoire, créez un fichier de test pour voir s'il sera disponible depuis le conteneur :

touch file.txt

2. Ensuite, utilisez le docker run commande pour lancer un conteneur Ubuntu avec le répertoire hôte qui lui est attaché :

docker run -it -v "$(pwd)":/data1 ubuntu

Cela lance le conteneur en mode interactif et monte un volume sous le nom data1 .

3. Répertoriez le contenu du conteneur et vérifiez qu'il existe une data1 répertoire :

ls

4. Ouvrez le répertoire monté et répertoriez le contenu. La sortie doit afficher le fichier que vous avez créé sur l'hôte :

cd data1
ls

Autorisation et propriété du volume

Les autorisations de volume peuvent être modifiées en configurant la propriété dans le Dockerfile.

Utilisez le RUN instruction et le chown commande pour définir l'autorisation de volume Docker. Assurez-vous que cette instruction précède la ligne définissant le VOLUME .

Vous pouvez également modifier le propriétaire du répertoire utilisé comme volume hôte.

Pour obtenir des instructions sur l'utilisation du chown commande, reportez-vous au didacticiel sur les autorisations de fichiers Linux :comment vérifier et modifier les autorisations.

Comment supprimer des volumes Docker

Pour supprimer un volume Docker, vous devez spécifier son nom.

La syntaxe de base pour supprimer un volume Docker dans la ligne de commande est :

docker volume rm [volume_name]

Docker supprime les volumes uniquement s'ils ne sont pas utilisés pour le moment. S'il existe un conteneur avec le volume spécifié, il répond par une erreur. Pour continuer, arrêtez et supprimez le conteneur, puis relancez le docker volume rm commande.

Comment supprimer tous les volumes à la fois

Pour supprimer tous les volumes Docker inutilisés avec une seule commande :

docker volume prune

La sortie vous avertit qu'elle supprimera tous les volumes locaux non utilisés par au moins un conteneur. Appuyez sur y pour continuer.


Ubuntu
  1. Comment démarrer avec les traductions ?

  2. Comment créer une partition Lvm/volume physique> 2 To ?

  3. Comment démarrer avec Juju?

  4. Comprendre les volumes Docker

  5. Comment obtenir des informations sur un conteneur dans Docker

Lxc et comment commencer ?

Comment ajouter un volume à un conteneur Docker existant

Docker sous Windows ? Commencez à apprendre maintenant ou… !

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

Comment obtenir l'adresse IP du conteneur Docker

Comment démarrer avec Arch Linux