Volumes persistants

Docker intermédiaire

Mike Metzger

Data Engineering Consultant

Qu'est-ce qu'un volume ?

  • Les volumes servent à stocker des données dans Docker, indépendamment de l'image du conteneur ou du système de fichiers de l'hôte
  • Se gèrent en ligne de commande (ou via l'API)
  • Peuvent être partagés par plusieurs conteneurs
  • Plus performants que les partages de fichiers / montages liés
  • Demeurent jusqu'à leur suppression

Montage de volume

1 Image modifiée de https://docs.docker.com
Docker intermédiaire

Gérer les volumes

  • docker volume
  • docker volume create <volumename>
  • docker volume ls ou docker volume list
  • docker volume inspect
    • Fournit diverses métadonnées sur le volume, dont Name, Mountpoint, Options, etc.
  • docker volume rm
Docker intermédiaire

Exemple de création de volume

bash> docker volume create sqldata
sqldata
bash> docker volume ls
DRIVER    VOLUME NAME
local     2f2b7f710551e004dcdd9edf4cad31c37826b428de12f1c04ca02305d216ab00
local     14da7ff0c6eb29f644e6f9f9d59bbcf56b3699c04881dd7cbcaa9ecd6bef239c
local     150aa3c5c7aee30ffd1ec7ecf39f03989bf561536a9413ebed96ffbaa537d103
local     sqldata
...
Docker intermédiaire

Exemple de « volume inspect »

bash> volume inspect sqldata

[ { "CreatedAt": "2024-01-27T04:27:51Z", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/sqldata/_data", "Name": "sqldata", "Options": null, "Scope": "local" } ]
Docker intermédiaire

Attacher des volumes

  • Utilise l'option -v
    • docker run -v <volumename>:<destination path>:<options>
    • Le nom correspond à un volume existant
    • Le chemin de destination est l'endroit où le volume sera monté (p. ex. /data)
    • Les options sont une liste facultative séparée par des virgules, comme ro pour lecture seule.
  • --mount existe aussi, comme pour les montages liés
$ docker run -v sqldata:/data postgres
Docker intermédiaire

Pilotes

  • Méthodes d'entreposage des volumes Docker
  • Peuvent inclure :
    • Système de fichiers local (par défaut)
    • NFS (partage de fichiers Unix)
    • SMB / CIFS (partage de fichiers Windows)
Docker intermédiaire

Passons à la pratique !

Docker intermédiaire

Preparing Video For Download...