docker драйвер хранилища постоянное хранилище - PullRequest
0 голосов
/ 06 марта 2020

Я новичок в docker и пытаюсь понять постоянное хранилище в docker.

в разделе Управление данными приложения> Хранение данных в контейнерах> О драйверах хранения

https://docs.docker.com/storage/storagedriver/
Драйверы хранилища позволяют создавать данные в доступном для записи слое вашего контейнера. Файлы не будут сохранены после удаления контейнера, а скорость чтения и записи ниже, чем производительность собственной файловой системы.

, но позже в разделе Управление данными приложения> Хранить данные внутри контейнеров> Используйте драйвер хранилища Device Mapper https://docs.docker.com/storage/storagedriver/device-mapper-driver/
, они используют direct-lvm, который создает логические тома, которые позволяют сохранять данные

мой вопрос: использование драйвера хранилища означает:

  1. данные, сгенерированные контейнером, являются эфемерными?
  2. данные, сгенерированные контейнером, являются эфемерными, если мы используем логический том в петле- устройство?
  3. данные, генерируемые контейнером, являются постоянными, если мы используем логический том на блочном устройстве?

1 Ответ

1 голос
/ 06 марта 2020

Конфигурация драйвера хранилища - это, по сути, установка во время установки, которая на самом деле не имеет значения, если вы правильно ее настроили. В частности, если вы запускаете docker info и он говорит, что использует драйвер overlay2, я бы рекомендовал закрыть эту конкретную вкладку браузера и ничего не менять.

В приведенном вами абзаце важно убрать следующее: те файлы, которые вы создаете внутри контейнера, которые не находятся внутри директории тома, будут потеряны, как только контейнер будет удален. Неважно, какой драйвер хранилища вы используете. Различия в производительности между файловой системой контейнера, именованными томами и bind-mounts почти никогда не имеют значения (за исключением хостов MacOS, где bind-монтирования очень и очень медленны).

Данные, которые сохраняются драйвером хранилища, включают обе файловые системы временных контейнеров (они сохраняются до удаления контейнера) и данные базового изображения. Он не включает именованные тома Docker или другие подключенные каталоги хостов.

Если вы используете devicemapper, вы можете посмотреть, можете ли вы обновить хост до более нового дистрибутива Linux, который может использовать оверлей2 драйвер. В частности, это позволяет избежать фиксированного ограничения пространства драйвера устройства отображения. Если вы должны использовать devicemapper, считается, что использование выделенного раздела для него лучше, чем использование файла. Как я уже сказал заранее, это, по сути, конфигурация во время установки, которая не имеет отношения к вашему приложению или docker run командам.

...