如何在启动时将我的数据库转储导入 mariadb?
How to import my db dump into mariadb on start?
我有一个这样的 docker-compose.yml 文件
version: '2'
services:
wordpress:
image: wordpress
ports:
- 8080:80
environment:
WORDPRESS_DB_NAME: my_wp
WORDPRESS_DB_USER: my_user
WORDPRESS_DB_PASSWORD: my_pass
volumes:
- ./src:/var/www/html
mysql:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: my_pass
volumes:
- ./db:/etc/mysql
我可以使用命令 docker-compose up
运行 我的容器,它工作正常,但显示默认的 wordpress 站点,其中包含要设置的空数据库。我想要的是,我有一个数据库转储文件 my_db.sql,我想在初始化时将其加载到 mariadb 中。我怎样才能做到这一点?我需要将我的 my_db.sql 文件放在哪里以供 mariadb 容器选择?
将包含 sql 文件的文件夹安装到数据库定义的 volumes
部分中容器上的 /docker-entrypoint-initdb.d
。任何 .sql
(和 .sql.gz
)文件将自动 运行 in.
有关详细信息,请参阅 docs 的 Initializing a fresh instance
部分。
您有 3 个选项:
将您的 .sql
文件装载到 /docker-entrypoint-initdb.d/
version: '2'
services:
wordpress:
image: wordpress
ports:
- 8080:80
environment:
WORDPRESS_DB_NAME: my_wp
WORDPRESS_DB_USER: my_user
WORDPRESS_DB_PASSWORD: my_pass
volumes:
- ./src:/var/www/html
mysql:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: my_pass
volumes:
- ./db:/etc/mysql
- ./my_db.sql:/docker-entrypoint-initdb.d/my_db.sql
在您的 docker-compose
文件中使用构建指令并指向具有以下内容的 dockerfile
:
FROM mysql
COPY my_db.sql /docker-entrypoint-initdb.d
创建一个虚拟容器,挂载 /my/own/datadir:/var/lib/mysql
,然后使用 docker exec
手动恢复数据库,然后您可以在需要该数据库时使用主机目录容器.
我有一个这样的 docker-compose.yml 文件
version: '2'
services:
wordpress:
image: wordpress
ports:
- 8080:80
environment:
WORDPRESS_DB_NAME: my_wp
WORDPRESS_DB_USER: my_user
WORDPRESS_DB_PASSWORD: my_pass
volumes:
- ./src:/var/www/html
mysql:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: my_pass
volumes:
- ./db:/etc/mysql
我可以使用命令 docker-compose up
运行 我的容器,它工作正常,但显示默认的 wordpress 站点,其中包含要设置的空数据库。我想要的是,我有一个数据库转储文件 my_db.sql,我想在初始化时将其加载到 mariadb 中。我怎样才能做到这一点?我需要将我的 my_db.sql 文件放在哪里以供 mariadb 容器选择?
将包含 sql 文件的文件夹安装到数据库定义的 volumes
部分中容器上的 /docker-entrypoint-initdb.d
。任何 .sql
(和 .sql.gz
)文件将自动 运行 in.
有关详细信息,请参阅 docs 的 Initializing a fresh instance
部分。
您有 3 个选项:
将您的
.sql
文件装载到/docker-entrypoint-initdb.d/
version: '2' services: wordpress: image: wordpress ports: - 8080:80 environment: WORDPRESS_DB_NAME: my_wp WORDPRESS_DB_USER: my_user WORDPRESS_DB_PASSWORD: my_pass volumes: - ./src:/var/www/html mysql: image: mariadb environment: MYSQL_ROOT_PASSWORD: my_pass volumes: - ./db:/etc/mysql - ./my_db.sql:/docker-entrypoint-initdb.d/my_db.sql
在您的
docker-compose
文件中使用构建指令并指向具有以下内容的dockerfile
:FROM mysql COPY my_db.sql /docker-entrypoint-initdb.d
创建一个虚拟容器,挂载
/my/own/datadir:/var/lib/mysql
,然后使用docker exec
手动恢复数据库,然后您可以在需要该数据库时使用主机目录容器.