如何在生产中扩展Docker容器
所以我最近发现了这个很棒的工具,它说
Docker是一个开源项目,可以轻松地从任何应用程序创build轻量级的,可移植的,自给自足的容器。 开发人员在笔记本电脑上构build和testing的相同容器可以在规模,生产环境,虚拟机,裸机,OpenStack集群,公共云等等上运行。
比方说,我有一个运行Nginx的Docker镜像,一个网站连接到外部数据库。 我如何在生产中缩放容器?
简单的答案是,你必须写自己的逻辑来做到这一点。
我期望这种特性能够从Docker之上构build的以下项目中出现,并且旨在支持生产中的应用程序:
- 弗林
- DEIS
- coreos
- Mesos
更新1
我最近发现的另一个相关项目:
- 大师
更新2
最新版本的Openstack包含对pipe理Docker容器的支持:
- Docker Openstack
- 在OpenStack中的Paas区域
更新3
pipe理Docker实例的系统
- 船厂
还介绍了如何使用Packer ,Docker和Serf等工具来提供不可变的服务器基础架构模式
- FutureOps与不可变的基础设施
- 幻灯片
更新4
关于如何使用serf将Docker容器连接在一起的整洁的文章:
- 分散Docker:如何在Docker中使用serf
更新5
使用Marathon框架在Mesos上运行Docker
Mesosphere Docker开发者教程
更新6
在Tsuru上运行Docker,因为它支持docker-cluster和segregated scheduler deploy
更新7
基于Docker的环境编排
大师-NG
更新8
decking.io
更新9
Google kubernetes
更新10
Redhat重构了他们的openshift PAAS来集成Docker
- 项目primefaces
- Geard
更新11
一个Docker NodeJS lib封装了Docker命令行并通过json文件pipe理它。
- 泊坞窗-CMD
更新12
亚马逊的新容器服务支持在集群中进行扩展。
更新13
严格地说, Flocker不会“扩展”应用程序,但是它被devise用来完成将多个有状态容器(运行数据库服务?)移植到多个Docker主机的相关function:
更新14
一个创build描述Docker应用程序的可移植模板的项目:
更新15
Docker项目现在正在本地寻找编排(请参阅公告 )
- Docker机器
- Docker群
- Docker撰写
更新16
Spotify Helios
也可以看看:
更新17
Openstack项目现在有一个名为Magnum的新“容器即服务”项目:
显示了很多的承诺,使得像Kubernetes和Docker swarm这样的Docker业务stream程框架的设置变得简单。
更新18
牧场主是一个快速成熟的项目
良好的用户界面和强烈的关注混合Docker基础设施
更新19
莱迪思项目是用于pipe理容器集群的Cloud Foundry的一个分支。
更新20
Docker最近买了Tutum:
更新21
部署在Kubernetes上的应用程序的包pipe理器。
更新22
Vamp是一个开源和自主托pipe的平台,用于pipe理依赖容器技术的(微)面向服务的体系结构。
更新23
分布式,高可用性,数据中心感知计划程序
从给我们stream浪者和其他强大的工具的家伙。
更新24
针对AWS的开放源代码和基于Kubernetes的容器托pipe解决scheme
更新25
基于Apache Mesos的容器位于德国
https://sloppy.io/features/#features
而Docker Inc.也提供了一个名为Docker云的容器托pipe服务
Deis自动缩放Docker容器(等等)。
Deis(发音为DAY-iss)是一款开源的PaaS,可以轻松在自己的服务器上部署和pipe理应用程序。 Deis基于Docker和CoreOS构build了一个具有Heroku灵感的工作stream程的轻量级PaaS。
这是开发人员工作stream程:
deis create myapp # create a new deis app called "myapp" git push deis master # built with a buildpack or dockerfile deis scale web=16 worker=4 # scale up docker containers
Deis自动在CoreOS集群上部署Docker容器,并configurationNginx路由器将请求路由到健康的Docker容器。 如果主机死亡,容器会在几秒钟内自动在另一台主机上重新启动。 只需浏览到代理url或使用deis open
打你的应用程序。
其他一些有用的命令:
deis config:set DATABASE_URL= # attach to a database w/ an envvar deis run make test # run ephemeral containers for one-off tasks deis logs # get aggregated logs for troubleshooting deis rollback v23 # rollback to a prior release
要看到这个行动,请查看terminalvideohttp://deis.io/overview/ 。 您还可以了解Deis概念,或直接部署您自己的私人PaaS 。
看看Rancher.com – 它可以pipe理多个Docker主机等等。
你可以尝试鹤。 Tsuru是Heroku的启发PaaS,在Globo.com(巴西最大的广播电视公司的互联网部门)已经有一些产品在生产,
它pipe理着一个应用程序的整个stream程,因为容器的创build,部署,路由(带有hipache),具有许多很好的function,如docker集群,单位缩放,隔离部署等。
看看我们的文档: http : //docs.tsuru.io/
这里我们的文章涵盖了我们的环境: http : //blog.tsuru.io/2014/04/04/running-tsuru-in-production-scaling-and-segregating-docker-containers/
扩展Docker的明智方法可能是:
- 每个服务将是docker集装箱
- 通过链接pipe理内部容器服务发现( 来自docker 0.6.5的新function )
- 集装箱将通过Dokku部署
- 应用程序将通过造船厂进行pipe理,而造船厂依次使用hipache
Yandex的另一个docker开源项目:
- 可卡因
Openshift家伙也创build了一个项目。 你可以在这里find更多的信息, 在这里尝试testing容器和详细信息。 唯一的问题是现在的解决scheme是以Redhat为中心的:)
虽然我们是Deis(deis.io)的粉丝,并且正在积极部署,但还有其他Heroku,比如PaaS风格的部署解决scheme,其中包括:
Wayfinder人士的Longshoreman:
https://github.com/longshoreman/longshoreman
来自CloudCredo人的Decker使用CloudFoundry:
http://www.cloudcredo.com/decker-docker-cloud-foundry/
至于直接的协调,NewRelic的开源Centurion项目看起来相当有前途:
也看看etcd和领事 。
巴拿马型:人类的dockerpipe理。 panamax.io
图:使用Docker的快速,孤立的开发环境 fig.sh
其他职位没有提到的一个选项是Helios。 它是由spotify构build的,并没有试图做太多。