将Mysmin寄存器映射到新映像后,数据在Mysql docker容器中丢失了吗?

时间:2017-04-08 16:14:39

标签: docker docker-container

我从docker hub中提取了一个mysql基础映像,并从该映像运行一个容器,并在该容器中创建了一个数据库和一些表,并将更改提交给新映像。但是当我运行我的新图像的容器时,我没有创建任何数据库。怎么做到这一点?我不想使用已安装的卷,因为我想将此容器与我的应用程序的另一个容器相链接,以便它可以插入并更新到db。

1 个答案:

答案 0 :(得分:1)

我不知道您正在使用哪个图片,但我相信official mysql images的每个Dockerfile都有以下命令:

VOLUME /var/lib/mysql

表示所有mysql数据都转到卷。从docker volume docs他们特别提到:

> Changes to a data volume will not be included when you update an image.

这是您在新启动的容器中丢失数据的根本原因。

对于你的问题:

  

如何实现这一目标?

您可以使用mounted volumes或创建data volume container,然后使用选项--volumes-from运行mysql容器。前面的链接包含如何执行此操作的分步指南。

  

我不想使用已安装的卷,因为我想将此容器与我的应用程序的另一个容器相关联,以便它可以插入并更新到db

我不知道您对挂载卷有什么其他问题,但据我所知,使用挂载的卷不会阻止您链接容器。

希望这会对你有所帮助。