Volumes persistants

Docker : niveau intermédiaire

Mike Metzger

Data Engineering Consultant

Qu'est-ce qu'un volume ?

  • Les volumes permettent de 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 entre plusieurs conteneurs
  • Plus performants que le partage de fichiers / bind mounts
  • Persistent jusqu'à suppression

Montage de volume.png

1 Image modifiée d'après https://docs.docker.com
Docker : niveau 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 : Name, Mountpoint, Options, etc.
  • docker volume rm
Docker : niveau intermédiaire

Exemple : création d'un volume

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

Exemple : inspecter un volume

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 : niveau 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'emplacement de montage (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 bind mounts
$ docker run -v sqldata:/data postgres
Docker : niveau intermédiaire

Pilotes

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

Passons à la pratique !

Docker : niveau intermédiaire

Preparing Video For Download...