我有一个使用SQLite数据库(它是每天由cron运行的数据收集器)的Python应用程序。我想要使用Docker在AWS或Google Container Engine上部署它。我看到三个主要步骤:
1. Containerize并在本地测试应用程序。
2.在AWS或GCE上部署并运行应用程序。
3.定期备份数据库并将其下载回本地存档。使用卷创建Docker应用程序创建
近期文章(在Docker上,StackOverflow和其他地方)表示,自1.9以来,卷现在是处理持久数据的推荐方式,而不是“数据容器”模式。为了将来的兼容性,我总是喜欢使用首选的,惯用的方法,但Volumes似乎比数据容器更具挑战性。我错过了什么?
继“数据容器”的模式,我可以轻松地:
- 建立一个基本映像的所有静态程序和配置文件。
- 从该映像创建一个数据容器映像并将我的数据库和备份目录复制到它(Dockerfile中的简单COPY)。
- 将两个图像都推送到Docker Hub。
- 将它们拉到AWS。
- 运行数据和基础映像,使用“-volume-from”来引用数据。
使用“泊坞窗卷创建”:
- 我不清楚怎么我的数据库复制到卷。
- 我很不清楚如何让这个数据库(包含数据库)达到AWS或GCE ...你不能推/卷一个卷。
我错过了关于卷的内容吗?
有没有很好的使用卷来做我想做的事情?
按照我的步骤3,是否有推荐的,惯用的方法来备份和下载数据(使用数据容器模式或卷)?
非常感谢您的解释!这是伟大的东西!向Docker团队表示敬意。我一直在试图找到更多关于这方面的文档,并没有太多的运气。 https://docs.docker.com/engine/userguide/containers/dockervolumes/只是模糊地讨论了你所描述的内容,并没有涉及到按照/拉取图像时保留的数据的魔力描述。你知道更多关于这方面的深入文档吗? –
这解释了一下:https://madcoda.com/2016/03/docker-named-volume-explained/。 –
对于一个空的已命名卷在运行时自动获取图像卷数据的副本的行为,我已经通过测试发现,但没有看到有关该详细信息的任何其他文档,但它确切地反映了容器发生的情况基于卷的容易过渡。你的图像中的数据是你如何设计Dockerfile的一部分,我会保持最低限度。对于其他任何事情,我会为导入/导出/备份创建一个实用程序容器。 – BMitch