Chr*_*isW 5 shell clone web-applications docker docker-compose
我想克隆一个包含所有数据的dockerized应用程序,在此示例中,它使用三个容器:1)Web应用程序容器(例如CMS),2)数据库容器和3)数据量容器(使用docker卷) 。
使用docker-compose,我可以仅使用初始数据轻松地创建这些容器的相同实例。但是,如果我想以与克隆KVM容器类似的方式在同一服务器上克隆一组正在运行的容器(包括其所有累积数据),该怎么办?使用KVM时,我将挂起或关闭VM,使用virt-clone之类进行克隆,然后启动克隆的guest虚拟机,该guest虚拟机具有与原始数据相同的所有数据。
一种用例是在进行重大更改之前或在安装新版本的插件之前,为正在运行的开发Web服务器创建克隆/快照。
使用Docker,这似乎并不那么简单,因为数据不会自动与其容器一起复制。理想情况下,我想做一些简单的事情docker-compose clone,最后得到与第一组相同的第二组容器,包括它们的所有数据。Docker和docker-compose都不提供克隆命令(从版本1.8开始),因此我需要考虑各种方法,例如备份和还原数据/数据库或使用第三方工具(例如Flocker)。
与此相关的是一个问题,该问题是如何执行与Docker化应用程序的KVM快照类似的功能,并能够轻松返回到先前的状态。最好是,克隆,快照和还原应尽可能减少停机时间。
完成这些任务的首选Docker方法是什么?
编辑:基于第一个答案,我将使我的问题更具体一些,以便希望能够到达编程步骤,以便能够执行类似的操作docker-compose-clone并docker-compose-snapshot使用bash或python脚本。克隆Docker卷的内容似乎是实现此目的的关键,因为每次我在同一yaml文件上运行docker-compose时,容器本身基本上都是克隆的。
通常,我的全克隆脚本需要
启动第二组容器
这将是正确的解决方法,我应该如何实施呢?我尤其不确定如何在脚本中执行步骤4(确定要复制的数据量),因为该命令docker volume ls仅在Docker 1.9中可用。
我如何使用这种方法来做类似于KVM快照的事情?(可能使用ZFS的COW文件系统功能,而我的Docker安装已在使用该功能)。
使用 docker,您可以将所有状态保存在卷中。只要容器重复使用相同的卷(来自主机或数据卷容器),就可以从映像重新创建容器。
我不知道从数据卷容器导出卷的简单方法。我知道 docker 1.9 版本将添加一些用于与卷交互的顶级 api,但我不确定导出是否会立即可用。
如果您使用主机卷,则可以从 docker 外部管理状态。
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |