Рейтинг:-2

Как базовое дисковое пространство (и связанные с ним технологии) для постоянного хранилища обычно настраивается в Docker

флаг za

Я хочу подключить постоянное хранилище к своим док-контейнерам. Я попробовал NFS с помощью TrueNAS, и, похоже, мне не повезло.

Конечно, я подхожу к этому неправильно. Каковы общие соглашения по подключению постоянного хранилища ВНЕШНЮЮ часть контейнера, чтобы в случае сбоя или переделки контейнера данные были повторно подключены или, по крайней мере, оставались существующими.

РЕДАКТИРОВАТЬ: Приносим извинения за путаницу. Я не говорю о привязке монтирования или томах, я хорошо знаком с этими технологиями. Я имею в виду базовые файловые системы, т.е. NFS и т. д. Существуют ли стандартные инструменты или системы управления, например. Longhorn для блочного хранения в kubernetes. лучше ли использовать решение для хранения файлов, объектов или блоков и т. д.

РЕДАКТИРОВАТЬ 2: Я подготовил все в документации Docker. Я знаю о томах и драйверах.Чего я не знаю, так это того, как их правильно использовать с соответствующими параметрами, поскольку они не документированы должным образом, или как эти вещи обычно устанавливаются в решение. Да, я могу просто «использовать драйвер», но как именно? Является ли NFS общей темой? А как насчет блочного хранения? Хранение объектов? Как это устроено на системном уровне.

РЕДАКТИРОВАТЬ: я добавляю это редактирование, потому что какая-то ласка закрыла его из-за недостаточной конкретики. Как будто спрашивать об этой проблеме не уместно. Я единственный, у кого был реальный ответ. Даже обычные пользователи докера не имеют ни малейшего представления о том, как все это работает под капотом. Вы не думаете, что у нас должен быть пост об этом вопросе? О нет, конечно нет.. Просто пусть люди повторяют одно и то же дерьмо снова и снова.

флаг pl
Вы читали о [bind mounts](https://docs.docker.com/storage/bind-mounts/) и [volumes](https://docs.docker.com/storage/volumes/)? Один или оба из них - то, что вам нужно.
BitShift avatar
флаг za
Я не об этом... уточню вопрос
флаг in
Докер знает только тома. Неважно, как вы их храните.
флаг in
Вам следует более внимательно прочитать раздел о томах, особенно часть о драйверах томов.
BitShift avatar
флаг za
@GeraldSchneider Я прочитал все, что можно прочитать о хранилище из документации по докеру, остается неясным, как эти драйверы полезны. Они редко документируют варианты использования, варианты и общий архитектурный дизайн. Последний из которых я пришел сюда, чтобы уточнить.
Рейтинг:2
флаг ng

Каковы общие соглашения для подключения постоянного хранилища ВНЕ контейнера

Их нет.

Вся парадигма Docker основана на предположении, что вы можете создавать и уничтожать контейнеры по своему усмотрению. Они не являются постоянными, и они не должны быть.

Если ваши контейнеры ожидают, что что-то там будет, Вы делаете это неправильно ¢.

BitShift avatar
флаг za
Что ж, конечно, он должен быть как можно более апатридным, и моя цель — отсутствие зависимости. Такие вещи, как контент Wikijs, файлы конфигурации панели Organizr/Heimdall, поваренные книги Ansible, которые я могу сохранить вне контейнера. Таким образом, если мне нужно перестроить контейнер, я могу просто перезагрузить сохраненный контент. Конечно, это соответствует духу и философии контейнеров, нет?
Massimo avatar
флаг ng
Да, конечно. Но во всех этих случаях решение состоит в том, чтобы хранить ваши постоянные данные *вне* контейнеров, в каком-то месте, к которому они могут получить доступ. * Где *, точно, зависит от вашей реализации.
BitShift avatar
флаг za
Да. В этом цель вопроса. Я пытаюсь узнать больше о базовых технологиях, используемых для облегчения этого, и с тех пор я узнал о различных технологиях хранения. Я как-нибудь напишу здесь, когда закончу. На данный момент кажется, что NFS для непроизводительного постоянного хранилища вне контейнера предпочтительнее. Хотя для того, как я хочу настроить эти контейнеры, я думаю, что блочный уровень с iSCSI будет лучше.
Рейтинг:0
флаг za

Соглашение с точки зрения базовой технологии файловой системы, по-видимому, заключается в использовании решений для блочного хранения, таких как Cinder, BGFS и т. д. (которые могут использовать Ceph, iSCSI и другие типы блочных файлов) или объектного хранилища, такого как Minio.

Такие решения помогают легко управлять базовым дисковым пространством, а также учитывают неявную потребность в распределенных файловых системах.

Это зависит от вариантов использования, и NFS идеально подходит для случаев, когда производительность не имеет значения, например для записи файлов. Таким образом, контейнер wikijs был бы идеальным кандидатом для NFS, чтобы запись пользовательского контента могла оставаться отдельной от контейнера.

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

Опять же, если вы используете много-много контейнеров с неопределенным сроком службы (например, я использую Nextcloud, Heimdall, pihole и т. д.), то решения для блочного хранения также могут предоставить вам более гибкую схему. Мне нравится идея использования блочного хранилища в этом сценарии, поскольку диск и файловая система обрабатываются приложением/контейнером, а не зависят от внешних факторов. Это может быть или не быть проблемой в реальном мире, но я могу предположить, что могут возникнуть потенциальные проблемы с NFS из-за этих причин или, более конкретно, из-за меньшего количества компромиссов с решением для блочного хранения.

Наконец, и мне нужно это подтвердить, отслеживание томов, связанных с каждым контейнером, само по себе становится задачей. Эти решения для блочного хранения могут обеспечить аккуратный и управляемый способ отслеживать это в циклах создания-уничтожения для резервного копирования и восстановления.

флаг jp
Minio не является блочным хранилищем
BitShift avatar
флаг za
Да @AlexD это хранилище объектов. В следующий раз, пожалуйста, просто отредактируйте запись.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.