自动化Docker提交和推送

我们有应用程序运行在docker集装箱。 我们希望每天保存容器的备份。 我认为docker提交和docker推送是进行备份并将新映像推送到docker中心的选项之一。

但这必须手动完成。 docker是否提供了一种自动执行(提交和推送)的方法? 还是有任何开源工具可以做到这一点?

或者我们需要编写脚本并将其添加到cron作业中?

我是通过这个来的。 但是答案是基于docker事件。 这对我的工作来说并不复杂。 有没有简单的方法?

我会build议你不要那样做:)。 这在快照中确实会产生,但是最终会导致长时间运行的容器无法从快照的原始位置重新启动。 而且随着时间的推移,这将导致越来越大的快照。

一个更好的方法来处理这个问题,就是控制你的状态,或者使用卷,并简单地做一个cron作业来tar /备份这个卷(你可以看一下https://github.com/tutumcloud/dockup来制作它自动)。

另一种方法是仍然控制你的状态,并定期执行docker cp来提取你的状态。

这样,您的容器本身就是无状态的,可以通过备份轻松地从原始点或任何时间点重用。 它简化了很多升级。

如果你不控制你的状态,那么你是正确的,提交/推动将是一个解决scheme,但我build议停止容器,并从提交版本重新启动。 这样,下一次,快照将只包含前一个的差异。 为此,您需要编写自己的脚本并将其添加到cronjob。