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

标签 docker dns

我正在考虑以下情况:

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

  • 创建这样的设置的正确方法是什么,我遇到了许多涉及DNS服务器的复杂系统,但实际上看起来更容易设置。

    最佳答案

    与您要实现的过程类似的过程称为蓝绿色部署。它依赖于始终有两个版本的应用程序正在运行(蓝色和绿色),并且一个版本设置为 Activity 状态,这意味着所有生产流量都路由到该版本。

    假设蓝色容器当前处于 Activity 状态。部署是通过更新绿色容器并更改代理以将流量路由到绿色应用程序来完成的。正确完成后,您的停机时间将为零。但是,最困难的部分是设置此代理,它将使用应用程序容器ip动态更新。这可以使用领事,领事的注册人和领事模板来完成。

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

  • Blue-Green Deployment To Docker Swarm with Jenkins Workflow Plugin
  • Building Blue-Green Deployment with Docker
  • Docker Flow
  • Blue-Green deployment DIY
  • 关于docker - 使用Docker容器切换应用程序版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37154449/

    相关文章:

    wcf - Windows Service中的WCF主机:无法获取wsdl

    Docker ADD 与 VOLUME

    apache - Docker容器中的apache2服务状态

    nginx - 将Kubernetes集群公开到Internet

    sql - 关于 Hibernate 的新手问题......在 Martin Fowler 文章的背景下

    spring - 在端口 8080 的 DNS 缓存中未找到主机名,但在端口 80 上正常?

    c - 解析 CNAME,DNS 中的 NS 答案

    docker - 如何从主机操作系统的 docker 容器运行应用程序?

    docker - 从私有(private) git 存储库构建 Docker 镜像

    docker - 如何使用 elasticsearch 配置 Jaeger?