Persistente volumes

Docker voor gevorderden

Mike Metzger

Data Engineering Consultant

Wat is een volume?

  • Volumes slaan data op in Docker, los van de containerimage en het host-bestandssysteem
  • Beheerd via de command line (of API)
  • Deelbaar met meerdere containers
  • Hoger presterend dan fileshares/bind mounts
  • Bestaan tot je ze verwijdert

volumemount.png

1 Afbeelding aangepast van https://docs.docker.com
Docker voor gevorderden

Volumes beheren

  • docker volume
  • docker volume create <volumename>
  • docker volume ls of docker volume list
  • docker volume inspect
    • Toont metadata over het volume, incl. Name, Mountpoint, Options, enz.
  • docker volume rm
Docker voor gevorderden

Voorbeeld: volume maken

bash> docker volume create sqldata
sqldata
bash> docker volume ls
DRIVER    VOLUME NAME
local     2f2b7f710551e004dcdd9edf4cad31c37826b428de12f1c04ca02305d216ab00
local     14da7ff0c6eb29f644e6f9f9d59bbcf56b3699c04881dd7cbcaa9ecd6bef239c
local     150aa3c5c7aee30ffd1ec7ecf39f03989bf561536a9413ebed96ffbaa537d103
local     sqldata
...
Docker voor gevorderden

Voorbeeld: volume inspecteren

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 voor gevorderden

Volumes koppelen

  • Gebruikt de -v-optie
    • docker run -v <volumename>:<destination path>:<options>
    • Volumenaam is de naam van een bestaand volume
    • Doelpad is waar het volume wordt gemount (bijv. /data)
    • Opties: komma-gescheiden lijst zoals ro voor alleen-lezen
  • --mount bestaat ook, zoals bij bind mounts
$ docker run -v sqldata:/data postgres
Docker voor gevorderden

Drivers

  • Manieren om Docker-volumes op te slaan
  • Kan omvatten:
    • Lokaal bestandssysteem (standaard)
    • NFS (Unix-bestandsdeling)
    • SMB / CIFS (Windows-bestandsdeling)
Docker voor gevorderden

Laten we oefenen!

Docker voor gevorderden

Preparing Video For Download...