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

我正在寻找做到以下情况:

  • 例如,使用像Jenkings这样的自动化工具构build我的应用程序
  • 当构build/testing成功时,我想创build一个新的Docker容器,其中包含新版本的应用程序。
  • 我会比所有其他应用程序使用新部署的应用程序/服务,使用新创build的容器,而不是旧的。 所以当其他容器例如使用“calculator.local:3000”时,我希望这个指向我的新容器,而不是旧容器
  • 当everthing成功时,我想删除/归档旧的容器

创build这样一个设置的正确方法是什么?我涉及到很多涉及DNS服务器的复杂系统,但是我真的看起来更容易设置。

类似于你想实现的是被称为蓝绿色部署的过程。 它依靠总是有两个版本的应用程序运行(蓝色和绿色),一个被设置为活动,这意味着所有的生产stream量都被路由到它。

假设蓝色容器目前处于活动状态。 通过更新绿色容器和更改代理将stream量路由到绿色应用来完成部署。 正确完成后,您可以有零宕机时间。 但是,最难的部分是设置这个代理,它将被应用程序容器IPdynamic更新。 这可以使用领事,领事登记员和领事模板来完成。

这里有几个指南,如何设置蓝绿色部署:

  • 带有Jenkins工作stream程插件的Docker群集的蓝绿色部署
  • 使用Docker构build蓝绿色部署
  • dockerstream程
  • 蓝绿调配DIY