Docker - Stockage
Pilotes de stockage
Docker dispose de plusieurs pilotes de stockage qui permettent de travailler avec les périphériques de stockage sous-jacents. Le tableau suivant présente les différents pilotes de stockage ainsi que la technologie utilisée pour les pilotes de stockage.
La technologie | Pilote de stockage |
---|---|
OverlayFS | superposition ou superposition2 |
AUFS | aufs |
Btrfs | brtfs |
Gestionnaire de périphériques | Gestionnaire de périphériques |
VFS | vfs |
ZFS | zfs |
Voyons maintenant quelques-unes des instances dans lesquelles vous utiliseriez les différents pilotes de stockage -
AUFS
C'est un pilote stable; peut être utilisé pour des applications prêtes pour la production.
Il a une bonne utilisation de la mémoire et est bon pour assurer une expérience Docker fluide pour les conteneurs.
Il existe une activité d'écriture élevée associée à ce pilote qui doit être prise en compte.
C'est bon pour les systèmes qui sont de type Platform en tant que service.
Devicemapper
C'est un pilote stable; garantit une expérience Docker fluide.
Ce pilote est idéal pour tester les applications en laboratoire.
Ce pilote est conforme aux principales fonctionnalités du noyau Linux.
Btrfs
Ce pilote est conforme aux principales fonctionnalités du noyau Linux.
Il existe une activité d'écriture élevée associée à ce pilote qui doit être prise en compte.
Ce pilote convient aux instances où vous gérez plusieurs pools de build.
Ovelay
Il s'agit d'un pilote stable et conforme aux principales fonctionnalités du noyau Linux.
Il a une bonne utilisation de la mémoire.
Ce pilote est idéal pour tester les applications en laboratoire.
ZFS
Il s'agit d'un pilote stable et idéal pour tester des applications en laboratoire.
C'est bon pour les systèmes de type Platform-as-a-Service.
Pour voir le pilote de stockage utilisé, lancez le docker info commander.
Syntaxe
docker info
Options
Aucun
Valeur de retour
La commande fournira toutes les informations relatives sur le composant Docker installé sur l'hôte Docker.
Exemple
sudo docker info
Production
La sortie suivante montre que le pilote principal utilisé est le aufs pilote et que le répertoire racine est stocké dans /var/lib/docker/aufs.
Volumes de données
Dans Docker, vous disposez d'un volume distinct qui peut être partagé entre les conteneurs. Ceux-ci sont connus commedata volumes. Certaines des caractéristiques du volume de données sont:
- Ils sont initialisés lors de la création du conteneur.
- Ils peuvent être partagés et réutilisés entre de nombreux conteneurs.
- Toute modification du volume lui-même peut être effectuée directement.
- Ils existent même après la suppression du conteneur.
Regardons notre conteneur Jenkins. Faisons undocker inspectpour voir les détails de cette image. Nous pouvons émettre la commande suivante pour écrire la sortie dudocker inspect dans un fichier texte, puis affichez le fichier en conséquence.
sudo docker inspect Jenkins > tmp.txt
Lorsque vous affichez le fichier texte à l'aide de more command, vous verrez une entrée comme JENKINS_HOME=/var/Jenkins_home.
Il s'agit du mappage effectué dans le conteneur via l'image Jenkins.
Supposons maintenant que vous vouliez mapper le volume du conteneur sur un volume local, vous devez alors spécifier l'option –v lors du lancement du conteneur. Un exemple est montré ci-dessous -
sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins
L'option –v est utilisée pour mapper le volume dans le conteneur qui est /var/jenkins_home à un emplacement sur notre hôte Docker qui est /home/demo.
Maintenant, si vous allez au /home/demo emplacement sur votre hôte Docker après le lancement de votre conteneur, vous verrez tous les fichiers de conteneur qui y sont présents.
Modification du pilote de stockage d'un conteneur
Si vous souhaitez modifier le pilote de stockage utilisé pour un conteneur, vous pouvez le faire lors du lancement du conteneur. Cela peut être fait en utilisant le–volume-driver paramètre lors de l'utilisation du docker runcommander. Un exemple est donné ci-dessous -
sudo docker run –d --volume-driver=flocker
–v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins
le –volume-driver L'option est utilisée pour spécifier un autre pilote de stockage pour le conteneur.
Pour confirmer que le pilote a été modifié, utilisons d'abord le docker pscommande pour voir les conteneurs en cours d'exécution et obtenir l'ID du conteneur. Alors, lancez d'abord la commande suivante -
sudo docker ps
Puis émettez un docker inspect contre le conteneur et placez la sortie dans un fichier texte à l'aide de la commande.
sudo docker inspect 9bffb1bfebee > temp.txt
Si vous parcourez le fichier texte et allez à la ligne qui dit VolumeDriver, vous verrez que le nom du pilote a été changé.
Créer un volume
Un volume peut être créé au préalable à l'aide du dockercommander. Apprenons-en plus sur cette commande.
Syntaxe
docker volume create –-name=volumename –-opt options
Options
name - C'est le nom du volume qui doit être créé.
opt - Ce sont des options que vous pouvez fournir lors de la création du volume.
Valeur de retour
La commande affichera le nom du volume créé.
Exemple
sudo docker volume create –-name = demo –opt o = size = 100m
Dans la commande ci-dessus, nous créons un volume de taille 100 Mo et avec un nom de démo.
Production
La sortie de la commande ci-dessus est affichée ci-dessous -
Liste de tous les volumes
Vous pouvez également lister tous les docker volumes sur un docker host. Plus de détails sur cette commande sont donnés ci-dessous -
Syntaxe
docker volume ls
Options
Aucun
Valeur de retour
La commande affichera tous les volumes sur le docker host.
Exemple
sudo docker volume ls
Production
La sortie de la commande ci-dessus est affichée ci-dessous -