Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
technique:docker:good_practices:storage [2020/10/13 16:20] – [Bind mount] qduchemitechnique:docker:good_practices:storage [2021/11/22 23:57] – ↷ Liens modifiés en raison d'un déplacement. qduchemi
Ligne 35: Ligne 35:
 * Pour **monter un ou des fichiers existants** dans un conteneur, on utilise un bind mount, * Pour **monter un ou des fichiers existants** dans un conteneur, on utilise un bind mount,
 * Pour **assurer la persistance d'un dossier du conteneur**, qui est initialement vide, on utilise un volume Docker. * Pour **assurer la persistance d'un dossier du conteneur**, qui est initialement vide, on utilise un volume Docker.
 +
 +## Cas particulier 
 +
 +Ce paragraphe va un peu semer la confusion, désolé.
 +
 +<bootnote>
 +Les volumes Docker sont situés dans `/var/lib/docker/volumes`, en interne. En général, sur les machines qui accueillent des services publics, `/var/lib/docker` est sur une partition qui utilise le SSD, pour obtenir de bonnes performances.
 +</bootnote>
 +
 +Or, certains services demandent un stockage assez conséquent, notamment lorsqu'il s'agit de médias. Dans ce cas, il est préférable d'utiliser une partition provenant d'un HDD. La capacité des SSD est beaucoup plus faible et pas forcément pertinente pour stocker des vidéos.
 +
 +Dans le cas précis où :
 +
 +* On veut persister des médias de grande taille dans un conteneur
 +* Que `/var/lib/docker` est stocké sur un SSD
 +
 +Alors on utilisera un **bind-mount sur un dossier qui utilise un HDD**. Le chemin du dossier à monter sera donc codé en dur et sera absolu, ce qui est dommage, mais on a pas le choix.
 +
 +<bootnote>
 +Si la machine virtuelle n'a qu'un seul disque virtuel, qui utilise le SSD (à vérifier dans Proxmox), on pourra [[technique:infrastructure:new_vm_disk|ajouter un disque virtuel qui utilise le HDD]] et monter le système de fichier qu'on créera dans un dossier arbitraire, qui sera utilisé pour le bind mount.
 +</bootnote>
  
 ## Bind mount ## Bind mount
Ligne 56: Ligne 77:
  
 <bootnote> <bootnote>
-L'inconvénient des bind mounts est qu'ils dépendent de l'existence d'un dossier sur l'hôte. C'est pourquoi on ne s'en sert pas pour les données, qui lors du premier lancement du conteneur n'existent pas. De plus, ils sont facilement modifiables par d'autres processus de l'hôte, tandis que les volumes Docker sont stockés dans `/var/lib/docker/volumes`. C'est aussi plus facile de contrôler la taille des volumes Docker, en les mettant dans une partition à part. Aussi, ils peuvent être gérés grâce aux commandes `docker volume`, et sont donc plus faciles à administrer.+L'inconvénient des bind mounts est qu'ils dépendent de l'existence d'un dossier sur l'hôte. C'est pourquoi on ne s'en sert pas pour les données, qui lors du premier lancement du conteneur n'existent pas. De plus, ils sont facilement modifiables par d'autres processus de l'hôte, tandis que les volumes Docker sont stockés dans `/var/lib/docker/volumes`.\\ 
 +\\ 
 +C'est aussi plus facile de contrôler la taille des volumes Docker, en les mettant dans une partition à part. Aussi, ils peuvent être gérés grâce aux commandes `docker volume`, et sont donc plus faciles à administrer.
 </bootnote> </bootnote>
  
  • technique/docker/good_practices/storage.txt
  • de ppom