docker:mysql启动时自动执行初始建表脚本
2018-01-12 18:04
627 查看
默认情况下,mysql镜像创建的docker容器启动时只是一个空的数据库实例,为了简化docker部署,我们需要
在docker创建mysql容器的时,数据库和表已经自动建好,初始化数据也已自动录入,也就是说容器启动后数据库就可用了。这就需要容器启动时能自动执行sql脚本。
在mysql官方镜像中提供了容器启动时自动执行
也就是说只要把你自己的初始化脚本放到
于是可以做这样一个简单的
Dockerfile
参考资料
mysql 5.6 entrypoint 脚本 https://github.com/docker-library/mysql/blob/master/5.6/docker-entrypoint.sh
mysql 5.6 镜像脚本 https://github.com/docker-library/mysql/blob/master/5.6/Dockerfile
在docker创建mysql容器的时,数据库和表已经自动建好,初始化数据也已自动录入,也就是说容器启动后数据库就可用了。这就需要容器启动时能自动执行sql脚本。
在mysql官方镜像中提供了容器启动时自动执行
/docker-entrypoint-initdb.d文件夹下的脚本的功能(包括shell脚本和sql脚本)
docker-entrypoint.sh中下面这段代码就是干这事儿的
for f in /docker-entrypoint-initdb.d/*; do case "$f" in *.sh) echo "$0: running $f"; . "$f" ;; *.sql) echo "$0: running $f"; "${mysql[@]}" < "$f"; echo ;; *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${mysql[@]}"; echo ;; *) echo "$0: ignoring $f" ;; esac echo done
也就是说只要把你自己的初始化脚本放到
/docker-entrypoint-initdb.d/文件夹下就齐活了。
于是可以做这样一个简单的
Dockerfile来实例我们的需求,其实关键的代码就是最后一行了。
Dockerfile
# docker image of facelog mysql # version 1.0.0 # author guyadong FROM mysql:5.6 MAINTAINER guyadong(10km0811@sohu.com) # 复制数据库初始化脚本create_table.sql到/docker-entrypoint-initdb.d文件夹下 COPY sql/create_table.sql /docker-entrypoint-initdb.d
参考资料
mysql 5.6 entrypoint 脚本 https://github.com/docker-library/mysql/blob/master/5.6/docker-entrypoint.sh
mysql 5.6 镜像脚本 https://github.com/docker-library/mysql/blob/master/5.6/Dockerfile
相关文章推荐
- docker容器启动后执行完l脚本后自动退出解决方案
- 让docker中的mysql启动时自动执行sql
- 让docker中的mysql启动时自动执行sql文件
- 验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本
- shell 脚本监控程序是否正在执行, 如果没有执行, 则自动启动该进程
- 在BBB启动时自动加载dtbo(或执行脚本、运行程序)
- 免解压版的Mysql的启动脚本,并且执行导入(windows)
- Docker - 避免启动container后运行shell脚本执行完成后docker退出container
- Linux启动和关闭时自动执行的所有脚本文件
- 详解如何在 Linux 启动时自动执行命令或脚本
- windows开机自动执行bat脚本启动cmd命令窗口并执行命令,最后自动关闭cmd命令窗
- 使用YUM安装并启动MySQL服务后,MySQL进程会自动在进程日志中打印root用户的初始密码
- Linux启动和关闭时自动执行的所有脚本文件
- Linux启动和关闭时自动执行的所有脚本文件
- linux启动后自动执行某个脚本
- mysql 自动执行的脚本
- 如何自动执行QTP测试脚本,即自动启动QTP并执行软件测试过程?
- 免解压版的Mysql的启动脚本,并且执行导入(windows)
- mysql启动时的初始执行文件的使用
- SuSE 启动自动执行脚本