我有一个名为A的应用程序,该应用程序使用MongoDB进行状态显示。我的计划是使用Docker,并可能为应用程序创建一个容器,为MongoDB创建一个容器,然后将A与MongoDB链接(可能使用fig)。据我了解,我应该为MongoDB状态使用数据量或“仅数据容器”。但是,如果我正确理解它,则可以链接到图像(在这种情况下为MongoDB图像)。这是否意味着我在部署新版本的A时需要重新启动MongoDB?
我想要做的是将更改部署到A(A'),而不会丢失MongoDB状态,并且(可能)不会关闭MongoDB。如果没有Docker,我只会关闭A并部署A',然后将其连接到相同的MongoDB实例(该实例仍在运行)。如果我在负载均衡器后面运行A的多个实例,这尤其重要。我如何使用Docker基础架构很好地实现这一目标?如果我运行A的单个实例,仅链接是一个好选择吗?
最佳答案
仅当MongoDB和/或数据容器链接到容器A时,才需要重新启动它们。因此,在您的情况下,我将按照以下步骤操作:
--volumes-from
启动您的MongoDB容器,以访问第一个容器的数据。 无需重新启动数据或MongoDB容器,因为它们没有直接链接到您的容器应用程序。
关于docker - 新应用程序版本的Docker部署工作流不丢失数据库状态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27685171/