Я хочу получить изображение yandex/clickhouse-server
yandex/clickhouse-server
Затем выполнить с базой данных некоторые вещи, такие как создание таблиц, заполнить ее данными и т. Д.
И затем я хочу передать изображениесо всем его содержимым на сервер.
Как мне это сделать?
Моя первая идея состояла в том, чтобы создать снимок изображения с docker commit CONTAINER, но это не будет чистым решением.
docker commit CONTAINER
Правильный способ - создать файл инициализации и расширить базовое изображение.На странице докера doc .
Как расширить это изображение Если вы хотите выполнить дополнительную инициализацию изображения, полученного из этого, добавьте один или несколько * .sql,* .sql.gz или * .sh скрипты в /docker-entrypoint-initdb.d.После того, как точка входа вызовет initdb, она запустит любые файлы * .sql, запустит любые исполняемые сценарии * .sh и найдет все неисполняемые сценарии * .sh, найденные в этом каталоге, для дальнейшей инициализации перед запуском службы. Например, чтобы добавить дополнительного пользователя и базу данных, добавьте следующее в /docker-entrypoint-initdb.d/init-db.sh:
Как расширить это изображение Если вы хотите выполнить дополнительную инициализацию изображения, полученного из этого, добавьте один или несколько * .sql,* .sql.gz или * .sh скрипты в /docker-entrypoint-initdb.d.После того, как точка входа вызовет initdb, она запустит любые файлы * .sql, запустит любые исполняемые сценарии * .sh и найдет все неисполняемые сценарии * .sh, найденные в этом каталоге, для дальнейшей инициализации перед запуском службы.
Например, чтобы добавить дополнительного пользователя и базу данных, добавьте следующее в /docker-entrypoint-initdb.d/init-db.sh:
Правильный способ перемещения базы данных - создание резервной копии или дампа, а затем перезагрузка его в новую базу данных.В противном случае, если вы хотите, вы можете попробовать создать образ из старого контейнера