使用批量创建部署Docker应用
我有一个使用SQLite数据库的Python应用程序(它是由cron每天运行的数据收集器).我想使用Docker将其部署在AWS或Google Container Engine上.我看到三个主要步骤: 最近的文章(在Docker,StackOverflow和其他地方)表示,从1.9开始,现在建议使用卷来处理持久化数据,而不是“数据容器”模式.为了将来的兼容性,我一直喜欢使用首选的惯用方法,但是卷似乎比数据容器更具挑战性.我错过了什么吗? 遵循“数据容器”模式,我可以轻松地: >使用所有静态程序和配置文件构建基础映像. 使用“ docker volume create”: >我不清楚如何将数据库复制到该卷中. 我是否缺少有关卷的内容? 最佳答案
首次使用空的命名卷时,它将在首次使用时收到映像的卷数据的副本(与基于主机的卷完全将装载点覆盖在主机目录上的基于主机的卷不同).因此,您可以将主映像中的卷内容初始化为一个卷,将该映像上载到注册表并将该映像下拉至目标主机,在该主机上创建一个命名卷,将映像指向该命名卷(使用docker- compose使最后两个步骤变得容易,实际上最多是两个docker volume创建< vol-name>和docker run -v< vol-name>:/ mnt< image>)的命令,并且它将填充您的初始数据.
从基于容器的卷或命名的卷中检索数据是相同的过程,您需要将卷安装在容器中,然后将导出/备份运行到外部位置.唯一的区别是在命令行中,而不是–volumes-from< container-id>您有-v< vol-name>:/ mnt.您也可以使用相同的过程将数据导入到卷中,而无需使用卷中的数据初始化应用程序映像. 新流程的最大优势在于,它可以清楚地将数据与容器分开.您可以清除系统上的所有容器而不必担心丢失数据,并且系统上列出的任何卷的名称都是清楚的,而不是随机分配的名称.最后,命名卷可以安装在目标上的任何位置,如果您有多个数据源(例如配置文件与数据库),则可以选择要安装的卷. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |