使用docker compose时,docker-entrypoint-initdb.d中的文件永远不会被执行
我在Windows 10上使用Docker Toolbox
我可以通过http://192.168.99.100:8000成功访问php部分,我一直在使用mariadb部分,但仍然有几个问题
我有一个sql文件作为/mariadb/initdb/abc.sql所以我应该被复制到/docker-entrypoint-initdb.d,创建容器后我使用docker-compose exec mariadb来访问容器,有文件作为/docker-entrypoint-initdb.d/abc.sql,但文件永远不会执行,我也测试过手动将sql文件导入容器,这是成功的,所以sql文件是有效的
我不太了解数据文件夹映射,以及如何使文件夹与容器同步,我总是在使用docker-compose up -d重新创建容器时收到警告
警告:服务“mariadb”正在使用上一个容器中的卷“/ var / lib / mysql”.主机映射“/…/mariadb/data”无效.删除现有容器(使用docker-compose rm mariadb)以使用重新创建数据库…完成
问题
>如何获取/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"