使用docker容器切换应用程序版本

使用docker容器切换应用程序版本,docker,dns,Docker,Dns,我希望对以下场景执行以下操作: 使用像Jenkings这样的自动化工具构建我的应用程序 当构建/测试成功时,我想创建一个新的docker容器,其中包含应用程序的新版本 我希望所有其他使用新部署的应用程序/服务的应用程序都使用新创建的容器,而不是旧容器。因此,当其他容器使用“calculator.local:3000”时,我希望它指向我的新容器,而不是旧容器 当一切都成功时,我想删除/归档旧容器 创建这样一个设置的正确方法是什么?我访问了许多涉及DNS服务器的复杂系统,但我看起来确实更容易设置

我希望对以下场景执行以下操作:

  • 使用像Jenkings这样的自动化工具构建我的应用程序
  • 当构建/测试成功时,我想创建一个新的docker容器,其中包含应用程序的新版本
  • 我希望所有其他使用新部署的应用程序/服务的应用程序都使用新创建的容器,而不是旧容器。因此,当其他容器使用“calculator.local:3000”时,我希望它指向我的新容器,而不是旧容器
  • 当一切都成功时,我想删除/归档旧容器

创建这样一个设置的正确方法是什么?我访问了许多涉及DNS服务器的复杂系统,但我看起来确实更容易设置。

类似于您想要实现的是一个称为蓝绿部署的过程。它依赖于始终有两个版本的应用程序在运行(蓝色和绿色),其中一个设置为活动,这意味着所有生产流量都将路由到它

假设蓝色容器当前处于活动状态。通过更新绿色容器和更改代理将流量路由到绿色应用程序来完成部署。如果操作正确,您可以实现零停机。但是,最困难的部分是设置此代理,它将使用应用程序容器ip动态更新。这可以使用concur、concur的注册人和concur模板来完成

以下是如何设置蓝绿色部署的一些指南: