首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在构建时在Docker容器中创建MySQL数据库

问在构建时在Docker容器中创建MySQL数据库
EN

Stack Overflow用户
提问于 2019-02-19 07:41:32
回答 1查看 954关注 0票数 0

我需要创建一个带有大型数据库的Docker映像。可以使用指定文件夹中的脚本populate_net_db.sh填充数据库。我需要创建一个在构建时就这样做的Docker映像,这样使用数据库的开发人员就可以创建一个容器,而不用等很长时间才能填充数据库。

我所做的(这起作用了,但不是我所需要的):

  • 我可以在运行时创建数据库,并使用mysql映像填充数据库,并将所需的文件放入docker-entrypoint-initdb.d文件夹。当您运行映像时,这将需要大量的时间来设置,但是可以根据需要工作,而且我可以完全按照需要使用docker exec -it "image_name" mysql -u root -p访问DB。
  • 我可以使用RUN命令在构建时创建相同的数据库,并看到在build时正确地设置了表,但是,当我运行这样一个映像时,将设置一个新的mysql,并且build中的DB将消失。

有没有办法在docker exec -it "image_name" mysql -u root -p中显示构建时数据库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-31 03:48:11

我设法解决了这个问题,在构建过程中将/var/lib/mysql/的内容保存在一个临时文件夹中,如:mv /var/lib/mysql /mnt/tmp/。然后,我创建了一个入口点脚本来放置在/docker-entrypoint-initdb.d文件夹中。此脚本在运行时删除/var/lib/mysql/内容,并将保存的状态从/mnt/tmp/中移出。这将导致MySQL重新启动。但是,在容器运行时,数据库变得非常快速。这种方法对一个27 the的数据库需要5分钟的时间,而从转储文件加载数据库则需要>1小时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54761010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档