Я не буду рекомендовать восстановление с помощью команды docker exec
, лучший способ поместить файл дампа в docker-образ, если он маленький, или смонтировать файл дампа в /docker-entrypoint-initdb.d
.
Так что добавьте это вваш Dockerfile, и вам нужно будет выполнить эти команды после запуска контейнера,
FROM mariadb
COPY backup.sql.gz /docker-entrypoint-initdb.d
Поэтому, когда вы запустите контейнер, он автоматически заполнится.
Во-вторых, вы также можете использовать хосттом связывания.
docker run -v $PWD/backup.sql.gz:/docker-entrypoint-initdb.d/ -it mariadb
Инициализация свежего экземпляра
Когда контейнер запускается впервые, новая база данных с указанным именем будетсоздан и инициализирован с помощью предоставленных переменных конфигурации. Кроме того, он будет выполнять файлы с расширениями .sh, .sql and .sql.gz
, которые находятся в /docker-entrypoint-initdb.d
. Файлы будут выполнены в алфавитном порядке. Вы можете легко заполнить свои службы mariadb, смонтировав дамп SQL в этот каталог и предоставив пользовательские образы с предоставленными данными. Файлы SQL будут импортированы по умолчанию в базу данных, указанную в переменной MYSQL_DATABASE
.
mariadb-dockerhub