【发布时间】:2017-10-03 02:29:28
【问题描述】:
我在 Windows 10 上使用 Docker 工具箱
我可以通过http://192.168.99.100:8000 成功访问 php 部分,我一直在使用 mariadb 部分,但仍有一些问题
我有一个/mariadb/initdb/abc.sql的sql文件,所以我应该复制到/docker-entrypoint-initdb.d,创建容器后我使用docker-compose exec mariadb访问容器,文件为/docker-entrypoint-initdb.d/abc.sql,但文件永远不会得到执行了,我也测试过手动将sql文件导入容器,成功了,所以sql文件是有效的
我不太了解数据文件夹映射,以及如何使文件夹与容器同步,我在使用 docker-compose up -d 重新创建容器时总是收到警告
WARNING: Service "mariadb" is using volume "/var/lib/mysql" from the previous container. Host mapping "/.../mariadb/data" has no effect. Remove the existing containers (with docker-compose rm mariadb) to use the Recreating db ... done
问题
- 如何获取
/docker-entrypoint-initdb.d中的sql文件被执行? - 使用 mariadb 容器映射数据文件夹的正确方法是什么?
请指导 谢谢
这是我的docker-compose.yml
version: "3.2"
services:
php:
image: php:7.1-apache
container_name: web
restart: always
volumes:
- /.../php:/var/www/html
ports:
- "8000:80"
mariadb:
image: mariadb:latest
container_name: db
restart: always
environment:
- MYSQL_ROOT_PASSWORD=12345
volumes:
- /.../mariadb/initdb:/docker-entrypoint-initdb.d
- /.../mariadb/data:/var/lib/mysql
ports:
- "3306:3306"
【问题讨论】:
标签: docker docker-compose docker-machine