我们在docker容器中运行应用程序。我们希望每天保存容器备份。我认为docker commit和docker push是备份并将新映像推送到docker hub的选项之一。
但这必须手动完成。 docker是否提供了一种自动执行此操作(提交和推送)的方法?或者有没有任何开源工具可以做到这一点?
或者我们是否需要编写脚本并将其添加到cron作业中?
我来了SO。但答案是基于docker事件。这对我的工作来说有点复杂。有什么简单的方法吗?
答案 0 :(得分:3)
我建议你不要那样做:)。这确实会在快照中产生,但是您最终会得到一个长时间运行的容器,该容器无法从快照的原点重新启动。这也会随着时间的推移产生越来越大的快照。
更好的方法是控制你的状态并使用卷并简单地执行一个cron作业来tar /备份该卷(你可以看看https://github.com/tutumcloud/dockup使其自动化)。
另一种方法是仍然控制你的状态,并定期执行docker cp
来提取你的状态。
这样你的容器本身就是无状态的,并且可以通过该备份从原始点或任何时间点轻松地重用。它简化了很多升级。
如果你不控制你的状态,那么你是对的,提交/推送将是一个解决方案,但我建议停止容器并从提交版本重新启动。这样,下次快照将仅包含前一个快照的差异。为此,您需要编写自己的脚本并将其添加到cronjob中。