Persistenta volymer

Docker för medelnivå

Mike Metzger

Data Engineering Consultant

Vad är en volym?

  • Volymer är ett sätt att lagra data i Docker, fristående från containeravbildningen och värdsystemets filsystem
  • Hanteras från kommandoraden (eller API)
  • Kan delas mellan flera containers
  • Bättre prestanda än fildelning / bind-monteringar
  • Finns kvar tills de tas bort

Volymmontering.png

1 Bild anpassad från https://docs.docker.com
Docker för medelnivå

Hantera volymer

  • docker volume
  • docker volume create <volumename>
  • docker volume ls eller docker volume list
  • docker volume inspect
    • Visar diverse metadata om volymen, t.ex. Name, Mountpoint och Options
  • docker volume rm
Docker för medelnivå

Exempel: skapa en volym

bash> docker volume create sqldata
sqldata
bash> docker volume ls
DRIVER    VOLUME NAME
local     2f2b7f710551e004dcdd9edf4cad31c37826b428de12f1c04ca02305d216ab00
local     14da7ff0c6eb29f644e6f9f9d59bbcf56b3699c04881dd7cbcaa9ecd6bef239c
local     150aa3c5c7aee30ffd1ec7ecf39f03989bf561536a9413ebed96ffbaa537d103
local     sqldata
...
Docker för medelnivå

Exempel: inspektera en volym

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 för medelnivå

Montera volymer

  • Använd flaggan -v
    • docker run -v <volumename>:<destination path>:<options>
    • Volymnamnet är namnet på en befintlig volym
    • Destinationssökvägen är platsen där volymen monteras (t.ex. /data)
    • Options är en valfri kommaseparerad lista med värden, t.ex. ro för skrivskyddad.
  • --mount finns även här, precis som för bind-monteringar
$ docker run -v sqldata:/data postgres
Docker för medelnivå

Drivrutiner

  • Sätt att lagra Docker-volymer
  • Alternativ:
    • Lokalt filsystem (standard)
    • NFS (fildelning i Unix)
    • SMB / CIFS (fildelning i Windows)
Docker för medelnivå

Nu kör vi en övning!

Docker för medelnivå

Preparing Video For Download...