我拉出了一个MySQL (最新的)&在运行它之后,我正在尝试提交我的容器,在这个mysql docker实例中添加一些数据和新模式&表。
作为参考,我点击了这个链接-> http://www.servermom.org/pull-docker-images-run-docker-containers/3225/
但是,即使在尝试了多种变体之后,我也没有达到我想要的效果。因此,我所做的就是在向容器中添加新的表和模式之后,提交并推送到链接中提到的Docker集线器。
之后,我删除了第一个拉取的镜像,因为我已经将新数据添加到容器中,并提交为具有不同标签的新镜像。我正在删除第一个拉出的图像。(我这样做的原因是因为假设我正在更改我的机器,当我对我提交的映像执行docker拉取时,我可以获得完整的数据)
就像git一样,如果我提交并推送,假设我的机器坏了,那么在新机器中,我只需要做一个git拉操作,我就可以得到所有东西而不会有任何损失。所以我不能理解为什么docker不保存更改。
发布于 2017-08-22 14:03:57
mysql镜像的数据存储在卷中。这意味着该卷中的文件不是映像的一部分,而是存储在主机上并分配给一个或多个运行的容器。
为了达到你想要的效果,我看到了两种选择:
1)构建自定义mysql镜像,您可以在其中更改mysql的卷外存储路径(或简单地创建新的不带卷的mysql镜像)。
2)您可以在容器启动时使用自定义运行脚本/入口点扩展镜像并包含模式修改命令
以下是有关卷的文档页面:https://docs.docker.com/engine/admin/volumes/volumes/
https://stackoverflow.com/questions/45808227
复制相似问题