Создание тома в докер-файле без постоянного тома (заявки) в Kubernetes? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть приложение, которое я конвертирую в докер-контейнер.

Я собираюсь протестировать некоторые другие конфигурации для приложения относительно постоянного и непостоянного хранилища.

например. в одном сценарии я собираюсь создать постоянный том и смонтировать некоторые данные в этот том.

В другом сценарии я собираюсь проверить не на наличие какого-либо постоянного тома (и принять, что любая дата, сгенерированная во время работы контейнера, исчезла, когда он остановился / перезапустился).

Относительно первого сценария, который работает нормально. Но когда я тестирую второй сценарий - нет постоянного хранилища - я не совсем уверен, что делать на стороне докера.

В принципе имеет ли смысл определять том в моем Dockerfile, если я не планирую хранить какие-либо постоянные тома в kubernetes?

например. вот и конец моего Dockerfile

...
ENTRYPOINT ["./bin/run.sh"]
VOLUME /opt/application-x/data

Так есть ли вообще смысл иметь последнюю строчку, когда я не создаю и kubernetes тома?

Или, другими словами, существуют ли сценарии, в которых создание тома в файле Docker имеет смысл, даже если соответствующие постоянные тома не создаются?

1 Ответ

2 голосов
/ 11 июля 2019

Обычно не имеет смысла определять VOLUME в вашем Dockerfile.

Вы можете использовать опцию docker run -v или настройку монтирования тома Kubernetes в любом каталоге в пространстве файловой системы контейнера, независимо от того, было ли его изображение первоначально объявлено как VOLUME. И наоборот, VOLUME может пропускать анонимные тома в итеративной последовательности разработки и прерывать команды RUN позже в Dockerfile.

В описываемом вами сценарии, если у вас нет VOLUME, все просто: если вы монтируете что-то по этому пути, в обычном Docker или Kubernetes, хранилище использует подключенный том, а если нет, данные остаются в файловой системе контейнера и теряется при выходе из контейнера (который вы хотите). Я думаю, что если у вас есть VOLUME, тогда среда выполнения контейнера автоматически создаст для вас анонимный том; общее поведение будет аналогичным (другим контейнерам трудно найти / использовать анонимный том), но, по крайней мере, в обычном Docker вы должны помнить, чтобы очистить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...