使用Docker容器切换应用程序版本
我正在寻找做到以下情况:
- 例如,使用像Jenkings这样的自动化工具构build我的应用程序
- 当构build/testing成功时,我想创build一个新的Docker容器,其中包含新版本的应用程序。
- 我会比所有其他应用程序使用新部署的应用程序/服务,使用新创build的容器,而不是旧的。 所以当其他容器例如使用“calculator.local:3000”时,我希望这个指向我的新容器,而不是旧容器
- 当everthing成功时,我想删除/归档旧的容器
创build这样一个设置的正确方法是什么?我涉及到很多涉及DNS服务器的复杂系统,但是我真的看起来更容易设置。
类似于你想实现的是被称为蓝绿色部署的过程。 它依靠总是有两个版本的应用程序运行(蓝色和绿色),一个被设置为活动,这意味着所有的生产stream量都被路由到它。
假设蓝色容器目前处于活动状态。 通过更新绿色容器和更改代理将stream量路由到绿色应用来完成部署。 正确完成后,您可以有零宕机时间。 但是,最难的部分是设置这个代理,它将被应用程序容器IPdynamic更新。 这可以使用领事,领事登记员和领事模板来完成。
这里有几个指南,如何设置蓝绿色部署:
- 带有Jenkins工作stream程插件的Docker群集的蓝绿色部署
- 使用Docker构build蓝绿色部署
- dockerstream程
- 蓝绿调配DIY
- 如何正确configurationVirtualBox的DNSconfiguration来parsing本地networking中的docker容器主机名?
- Kubernetes / minikube无法在同一集群中ping pod,但nslookup可以正常工作
- Zabbix服务器和代理使用dns与docker群1.12-连接问题
- 如何将CNAMEredirect到azure色的IP?
- 我怎样才能触发我的容器中重装的resolv.conf?
- 在docker-compose中设置所有容器的DNS
- kube-dns不能在kubernetesarm上工作
- Docker自动从DHCP / DNS设置容器IP地址
- 我如何validationdocker撰写DNS的行为?