@thatmaniscool

Правильно ли я понимаю принцип контейнера в docker?

Предположим я создаю контейнер с базой данных mysql. Я завожу базу данных, делаю необходимые для меня таблицы и прочие настройки, вношу первичные данные.
После чего я просто экспортируют образ и переношу на другую машину, там этот образ я импортирую в виртуальную машину и все то, что я создал ранее, будет там сохранено в неизменном виде.
Так ли это?
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Akela_wolf
Extreme Programmer
Да. Но соль в том, что если кто-то внесет изменения эту БД, а затем перезапустит контейнер - изменения потеряются.

В некоторых случаях это может быть удобно. Например, так работает testcontainers - запускается контейнер с БД (в нашем случае - с готовым образом именно нашей БД), на нем выполняются тесты, затем контейнер убивается. Таким образом, тесты всегда выполняются в "чистом" окружении.

Если же речь идет о том, чтобы кто-то мог вносить изменения в БД, то есть использовать её именно как БД - то храниться файлы БД должны не в контейнере, а снаружи от него (например на docker volume). А это означает что в передаваемом контейнере их не будет.

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

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

Войти через центр авторизации
Похожие вопросы