Docker - перенести образ базы данных с ее содержимым - PullRequest
0 голосов
/ 25 декабря 2018

Я хочу получить изображение yandex/clickhouse-server

Затем выполнить с базой данных некоторые вещи, такие как создание таблиц, заполнить ее данными и т. Д.

И затем я хочу передать изображениесо всем его содержимым на сервер.

Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Моя первая идея состояла в том, чтобы создать снимок изображения с docker commit CONTAINER, но это не будет чистым решением.

Правильный способ - создать файл инициализации и расширить базовое изображение.На странице докера doc .

Как расширить это изображение Если вы хотите выполнить дополнительную инициализацию изображения, полученного из этого, добавьте один или несколько * .sql,* .sql.gz или * .sh скрипты в /docker-entrypoint-initdb.d.После того, как точка входа вызовет initdb, она запустит любые файлы * .sql, запустит любые исполняемые сценарии * .sh и найдет все неисполняемые сценарии * .sh, найденные в этом каталоге, для дальнейшей инициализации перед запуском службы.

Например, чтобы добавить дополнительного пользователя и базу данных, добавьте следующее в /docker-entrypoint-initdb.d/init-db.sh:

0 голосов
/ 26 декабря 2018

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

...