Levman5
@Levman5
print(“Hello World!”)

Где лучше хранить БД? В докере или нет?

Здравствуйте, посоветуйте пожалуйста где лучше хранить базу данных PostgreSQL? Локально или в каждом докер композе новую делать?
  • Вопрос задан
  • 1986 просмотров
Решения вопроса 1
trapwalker
@trapwalker
Программист, энтузиаст
Дополню немного ответ Dr. Bacon, поскольку мне кажется он не так понял ваш вопрос, а вы, возможно, не так поняли суть проблемы.
Под БД, например постгрес, обычно понимают две разные вещи:
1) сами данные в файловой системе,
2) сервер базы данных, который реализует сетевой интерфейс для работы с БД и правильным образом кладёт и читает данные в файловой системе.

Так вот, сервер можно развернуть ка кна хостовой машине (как вы сказали "локально"), так и в докер-контейнере.
Файлы БД можно разместить как в файловой системе контейнера, так и в локальной файловой системе, примонтированной внутрь контейнера.
И тут полно нюансов.
Давайте начнём с того, как правильно.
Правиьным будет взять стандартный докер-образ сервера БД, сконфигурировать его через компоуз-файл, а размещение файлов БД примонтировать в виде отдельного volume.

Что имел в виду Dr. Bacon. Он имел в виду, что если не монтировать файлы БД в volume, то они будут лежать внутри контейнера, а значит при его перезапуске все данные будут стерты, поскольку состояние файловой системы контейнера не принято хранить. Это одно из преимузеств докера - сделал образ унаследовав его от других образов, а потом при запуске контейнера он какждый раз как новенький.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
За плюшки докера приходится платить понижением производительности файловой системы (хотя при использовании btrfs докером уже не так, но там сам btrfs дает накладные расходы, неоднозначные), можно получить до 20-30% понижение (это тюнится но в ущерб безопасности), кстати не только дисковый io, падает скорость системных вызовов.

Докер - это удобство развертывания и песочница (дает профит при защите от взлома), собственно на этом удобства заканчиваются.

Если по производительности ты не упираешься в дисковую систему то используй докер
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы