我玩了两天与docker.io。 太棒了! 一些简单的容器已经在生产服务器上运行。
目前,我被困在如何使容器备用。 假设我已经运行与主管+阿帕奇+分布式缓存+ MySQL的复杂搬运工容器内。在负载下(每秒10K请求)。 它是安全,使
搬运工出口> backup.tar
或者,我必须停止内部容器只,出口集装箱tar文件后,所有的进程?
我玩了两天与docker.io。 太棒了! 一些简单的容器已经在生产服务器上运行。
目前,我被困在如何使容器备用。 假设我已经运行与主管+阿帕奇+分布式缓存+ MySQL的复杂搬运工容器内。在负载下(每秒10K请求)。 它是安全,使
搬运工出口> backup.tar
或者,我必须停止内部容器只,出口集装箱tar文件后,所有的进程?
如果“安全”你的意思是“一致的”,然后导出的存档将文件系统是一致的 。
该docker export
命令,任何其他传统备份方法,也不会解决的是应用相一致的问题。
Apache和Memcached的将不再是一个问题,因为他们并不需要存储维护任何一种状态。
但是backuping Mysql的这种方式将可能使在恢复模式数据库重启,如果运行所产生的图像集装箱docker export
。
特别是,如果备份的不必进行写入活动(插入,更新..),与任何其他文件系统级备份时,你将失去一些交易。
如果你需要你的MySQL备份的数据文件是100%一致,反映您的数据的确切状态,你必须要么:
docker export
flush tables with read lock;
。 当导出完成,你必须运行unlock tables;
将备份的数据文件(一般在/ var / lib中/ MySQL的)将是一致的。 mysqldump
...)