Стійкі томи

Середній рівень Docker

Mike Metzger

Data Engineering Consultant

Що таке том?

  • Volumes — спосіб зберігати дані в Docker, незалежний від образу контейнера та файлової системи хоста
  • Керуються з командного рядка (або API)
  • Можна спільно використовувати між кількома контейнерами
  • Вища продуктивність, ніж file share / bind mounts
  • Існують, доки їх не видалять

монтування тому.png

1 Image modified from https://docs.docker.com
Середній рівень Docker

Керування томами

  • docker volume
  • docker volume create <volumename>
  • docker volume ls або docker volume list
  • docker volume inspect
    • Надає метадані про том: Name, Mountpoint, Options тощо
  • docker volume rm
Середній рівень Docker

Приклад створення тому

bash> docker volume create sqldata
sqldata
bash> docker volume ls
DRIVER    VOLUME NAME
local     2f2b7f710551e004dcdd9edf4cad31c37826b428de12f1c04ca02305d216ab00
local     14da7ff0c6eb29f644e6f9f9d59bbcf56b3699c04881dd7cbcaa9ecd6bef239c
local     150aa3c5c7aee30ffd1ec7ecf39f03989bf561536a9413ebed96ffbaa537d103
local     sqldata
...
Середній рівень Docker

Приклад 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

Підключення томів

  • Використовує команду -v
    • docker run -v <volumename>:<destination path>:<options>
    • Ім'я тому — це назва наявного тому
    • Шлях призначення — місце монтування тому (наприклад, /data)
    • Параметри — необов'язковий список через кому, наприклад ro для лише читання
  • Доступний також --mount, як і для bind-mounts
$ docker run -v sqldata:/data postgres
Середній рівень Docker

Драйвери

  • Способи зберігання томів Docker
  • Можуть включати:
    • Локальна файлова система (типово)
    • NFS (Unix-файлообмін)
    • SMB / CIFS (Windows-файлообмін)
Середній рівень Docker

Давайте потренуємось!

Середній рівень Docker

Preparing Video For Download...