如果我有一个data.sql,我如何将数据库导入到我的mysql docker容器中?如何导入数据库数据。在停靠的世界中,这增加了一层复杂性。请给我一些方法。
这里是我的docker-compose.yml:
nginx:
build: ./nginx/
container_name: nginx-container
ports:
- 80:80
links:
- php
volumes_from:
- app-data
php:
build: ./php/
container_name: php-container
expose:
- 9000
links:
- mysql
volumes_from:
- app-data
app-data:
image: php:7.0-fpm
container_name: app-data-container
volumes:
- ./www/html/:/var/www/html/
command: "true"
mysql:
image: mysql:latest
container_name: mysql-container
ports:
- 3306:3306
volumes_from:
- mysql-data
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: name_db
MYSQL_USER: user
MYSQL_PASSWORD: password
mysql-data:
image: mysql:latest
container_name: mysql-data-container
volumes:
- /var/lib/mysql
command: "true"发布于 2018-04-06 04:14:18
我似乎不能用最新的mysql或mysql:5.7来做这个工作。所以我改用mariaDB。这是我的docker-compose.yaml代码。
version: '3'
services:
mysql:
image: mariadb:10.3
container_name: mariadb
volumes:
- container-volume:/var/lib/mysql
- ./dump.sql:/docker-entrypoint-initdb.d/dump.sql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: name_db
ports:
- "3306:3306"
volumes:
container-volume:发布于 2017-05-10 16:22:49
您可以在之后导入数据库:
docker exec -i mysql-container mysql -uuser -ppassword name_db < data.sql
发布于 2017-05-10 06:00:17
使用卷挂载将sql-dump挂载到/docker-entrypoint-initdb.d/yourdump.sql下
mysql:
image: mysql:latest
container_name: mysql-container
ports:
- 3306:3306
volumes:
- ./dump.sql:/docker-entrypoint-initdb.d/dump.sql
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: name_db
MYSQL_USER: user
MYSQL_PASSWORD: password这将在容器启动期间触发sql-dump的导入,请参阅“初始化新实例”下的https://hub.docker.com/_/mysql/。
https://stackoverflow.com/questions/43880026
复制相似问题