自动化 docker 提交和推送

Automating docker commit and push

我们在 docker 容器中有应用程序 运行。我们希望每天保存容器的备份。我认为 docker commit 和 docker push 是备份并将新图像推送到 docker hub 的选项之一。

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

还是需要写脚本加入到cron job中?

我经历了这个SO。但答案是基于 docker 个事件。这对我的工作来说有点复杂。有什么简单的方法吗?

我建议您不要那样做 :)。这确实会产生快照,但您最终会得到一个长长的 运行 容器,该容器无法从快照的来源重新启动。随着时间的推移,这也会导致越来越大的快照。

解决此问题的更好方法是控制您的状态并使用卷并简单地对 tar/backup 该卷执行 cron 作业(您可以查看 https://github.com/tutumcloud/dockup 来制作它是自动的)。

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

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

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