说明
在用docker创建mysql容器的时,有时候我们期望容器启动后数据库和表会自动构建,初始化数据也已自动录入,也就是说容器启动后我们就能直接连上容器中的数据库,使用其中的数据了。自动执行SQL这一过程存在于第一次使用镜像构建容器时,下一次restart容器时则不会存在等待其再次自动执行SQL的过程。
其实mysql的官方镜像是支持这个能力的,在容器启动的时候自动执行指定的sql脚本或者shell脚本,我们一起来看看MySQL官方的Dockerfile,如下图:
注意事项:官方加载该sh文件时指定了名字,也就是说,我们的sql启动脚本sh文件也得叫这个名字:docker-entrypoint.sh
快速开始
首先给出项目结构图(使用IDEA):
首先给出SQL文件,一个创建数据库和表sakila-schema.sql,一个写入数据sakila-data.sql: