Рубрики
Uncategorized

[DEVOPS / DOCKER] Как управлять файлами и томом с Docker

При запуске используя Docker, много людей хранить файл либо в самом экземпляре контейнера … Теги с DevOps, Docker.

Docker (2 части серии)

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

С докером, как в целом, есть несколько способов управления файлами:

  • непосредственно в контейнере
  • через точку монтирования на вашем сервере
  • Контейнер данных
  • Использование докера
  • Использование сетевой файловой системы (Amazon S3, Hadoop, …).

Файлы, хранящиеся непосредственно в контейнере : Основным преимуществом этого решения является простота. Но есть несколько недостатков:

  • Ваш контейнер не сохраняется, поэтому, когда ваш контейнер сбой или удален, вы можете потерять свои файлы. В каком-то случае не важно: временные файлы, демонстрационные файлы, сгенерированные скриптом, ….
  • Производительность, как Docker Use Union FS, При чтении и записи файлов это может быть не так быстро, как и ожидалось.
  • Совместное использование файлов: если вы хотите поделиться файлом между несколькими процессом, либо у вас есть несколько процессов в вашем контейнере (не очень хорошо), либо вы можете связать те же два контейнера (или у них в одном и том же POD, если вы используете K8S), это может быть не очень хорошо тоже.

Файлы крепление на хосте : Одним из преимуществ этого решения также является простота, и она частично решает проблему совместного использования файла между контейнерами (до тех пор, пока Thy работает на одном сервере). Это решение тоже имеет недостаток:

  • Ваш контейнер должен работать на этом сервере,
  • Контейнер должен иметь доступ в записи (или прочитанного) на свой хост, он может быть не защищен.
  • Этого, чтобы избежать в производстве, потому что вы создаете жесткую связь между контейнером и хостом, и вы потеряете некоторые преимущества концепции изоляции.

Магазин файлов в контейнере данных : Некоторые люди делают это, …, я до сих пор не понимаю, почему делать это, когда у вас есть тома ….

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

Файлы в докер тома : Это решение может быть немного сложным для начинающих, так как вводит новую концепцию, но на самом деле это довольно эффективно. Полная документация доступна здесь . Вы можете увидеть его, как создание нового логического диска, предназначенного для вашей необходимости, где вы можете настроить размер, имя, используемую файловую систему. Основные преимущества использования объема:

  • Это удобство обмена файлами между контейнерами
  • Это не ссылается на сервер, где сохраняется контейнер и тома.
  • Это позволяет масштабировать, как вы можете определить файловую систему, которую вы хотите внутри него, вы даже можете представлять, чтобы иметь распределенную файловую систему, как Блестки Отказ (Вы можете посмотреть на все доступные драйверы здесь ). Вы даже можете использовать непосредственно решение облачного провайдера. Итак, это мое любимое решение, так как он предлагает также уровень абстракции между вашим контейнером и файловой системой.

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

Почему нам нужно поделиться файлом в Docker World? Я дам некоторое распространенное использование корпуса см. В нескольких проектах:

  • В качестве контейнера должен работать только один процесс, когда вы запускаете приложение, и вам нужно создать файл конфигурации в начале (файл конфигурации, который может измениться в течение времени, потому что вы используете консуль, или EtCD или Vault ..) Отказ Таким образом, у вас есть процесс демона, который сканирует изменение, и это обновляет файл конфигурации, а затем, что уведомит приложение, чтобы прочитать его. Наличие двух процессов в вашем документе будет беспорядок, как если бы один из двух процессов умирает, вы можете быть в странной ситуации. Способ управлять этим, тоже есть два боковых автомобиля, совместно используя объем.
  • Если вы хотите подтолкнуть свои журналы в центральном месте (лось, …), вы можете использовать ту же боковую контейнерную концепцию.
  • Файлы базы данных, вы можете хранить свои файлы в выделенном объеме, что позволит вам начать другой процесс PSQL, используя громкость в режиме только для чтения, это даст вам доступ к данным, не имея никакого риска с процессом, запущенным Дб

Docker (2 части серии)

Оригинал: «https://dev.to/ouelcum/devops-docker-how-to-manage-files-with-docker-2bfl»