假设我在生产中具有带有Web服务器,数据库服务器和Web应用程序的docker镜像。
我可以在不破坏数据库服务器的情况下将应用程序更新推送到生产容器吗?
最佳答案
我建议您阅读微服务体系结构,因为您似乎在将Docker镜像等同于轻量级VM镜像方面存在逻辑上的谬误。我使用的逻辑是,VM将OS与主机隔离,而容器将进程及其子节点与主机隔离。因此,您不希望Web服务器,数据库服务器和Web应用程序在同一镜像上,它们将是2-3个单独的镜像(取决于应用程序的运行方式)。
图像应该被认为是不可变的,您对容器所做的任何更改都应该在完全重启后丢失。数据位于镜像外部的卷上,并附加到容器上。如果通过数据量推送更新,则该更改将立即生效,而无需任何重新启动,但是如果将应用程序移动到该量中,您还将失去拥有版本不变的镜像的许多优点。是否需要将所有容器一起重新启动,或者是否可以拉出并更换单个容器,或者是否可以在分解旧版本以提供100%正常运行时间之前启动新版本,这取决于体系结构的设计。
关于deployment - 我可以在不重建应用程序的情况下将应用程序更新推送到Docker镜像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37857095/