@Sta_sko

Как создать свой образ диска с уже примонтированной базой данных?

Добрый день!

Суть вопроса : осваиваю Docker, хочется получить готовый образ с предустановленным Wordpress. Docker Hub предлагает решение в виде образа Wordpress, в котором в свою очередь используются образы Wordpress и Mysql:5.7 (на данный момент).
При создании контейнера из этого образа, нам первым делом предлагают создать пользователя Wordpress ( сама пустая база данных для сайта уже создана), далее Wordpress уже наполняет БД своими таблицами. А хочется чтобы база данных при запуске контейнера была уже заполнена и осталось только залогиниться на сайте.

Если использовать Docker Volume, пробрасывая с хоста в контейнер, то изменяя контейнер, меняется и содержимое на хосте. ( при использовании к примеру в docker-compose.yml синтаксиса volumes: /home/site/db:/var/lib/mysql).

Как прошить образ своей базой данных, чтоб изменения в контейнере, никак не изменяли содержимое на хосте?
  • Вопрос задан
  • 242 просмотра
Пригласить эксперта
Ответы на вопрос 3
@q2digger
никого не трогаю, починяю примус
Для начала надо иметь "свой" дамп базы данных. Ок, предположим вы его имеете.
Теперь идете в папку, где у вас лежит docker-compose.yml , делаете там каталог например dump в него закидываете свой дамп базы.
дальше вы прописываете в описание контейнера mysql эту папку, монтируете ее примерно так:
volumes :
      - ./dump/:/docker-entrypoint-initdb.d/

Теперь когда вы будете стартовать свой проект, то на взлете базы контейнер автоматически попытается залить в базу дамп который найдет в своей папке /docker-entrypoint-initdb.d/
Дальше wordpress просто обнаружит уже наполненную базу..
Ответ написан
Наверно самый простой вариант:

Не прокидывать volume.
Запустить стандартный композ вордпресса с базой, провести всю необходимую инициализацию. Потом остановить контейнер с базой данных и выполнить docker commit в новый образ. Далее использовать этот новый образ БД в docker compose.
Ответ написан
@Tiasar
Web Developer
Можно sql скрипты с дампами положить в папку docker-entrypoint-initdb.d
При первом ините контейнера они исполнятся и будет и структура и данные которые Вам нужны
Ответ написан
Ваш ответ на вопрос

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

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