是在生产环境中增量更新Docker镜像

比方说,我们有Docker镜像实例在生产环境中运行。 该映像包含Linux操作系统和应用程序jar文件。 作为补丁版本的一部分,应用程序jar中的一些类有一些变化。 这些更改是否可以在生产中逐步更新,或者我们需要更换整个图像? 如果我们可以创build一个增量并更新它,那么执行这些操作的命令是什么。

在Docker实例数量巨大且需要打补丁的大型生产环境中,移动整个映像而不是增量/增量将是头等大事。

我不会在生产环境中使用docker镜像的更改和提交策略。 只是因为最后你不能完全重现图像的变化方式。 你只能看到差异。

我将通过使用Dockerfile在构build环境(例如Jenkins)中构build图像。 特别是 – 正如你提到的JAR文件 – 当你使用maven构build你的Java应用程序时,你也可以使用docker-maven-plugin在同一个版本中很容易地生成一个docker镜像。 所以你总是能够在你的构build环境中重现一个图像。

那么当涉及到需要部署到数十个服务器的部署阶段时,您当然不会手动完成。 你会自动执行该步骤。

根据常见问题解答 ,您可以逐步更新图像,类似于git pull。

版本。 Docker包括用于跟踪容器的连续版本,检查版本之间的差异,提交新版本,回滚等类似git的function。历史logging还包括如何组装一个容器以及由谁来完成,因此您可以从生产服务器一路回到上游开发商。 Docker也实现增量上传和下载,类似于git pull,所以新版本的容器只能通过发送差异来传输。

至于如何做到这一点,我会认为docker拉命令将是要走的路,因为它跳过已经下载的图层,只得到新的。