如何在生产中扩展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:

https://clusterhq.com/

更新14

一个创build描述Docker应用程序的可移植模板的项目:

http://panamax.io/

更新15

Docker项目现在正在本地寻找编排(请参阅公告 )

  • Docker机器
  • Docker群
  • Docker撰写

更新16

Spotify Helios

也可以看看:

更新17

Openstack项目现在有一个名为Magnum的新“容器即服务”项目:

显示了很多的承诺,使得像Kubernetes和Docker swarm这样的Docker业务stream程框架的设置变得简单。

更新18

牧场主是一个快速成熟的项目

http://rancher.com/

良好的用户界面和强烈的关注混合Docker基础设施

更新19

莱迪思项目是用于pipe理容器集群的Cloud Foundry的一个分支。

更新20

Docker最近买了Tutum:

https://www.docker.com/tutum

更新21

部署在Kubernetes上的应用程序的包pipe理器。

http://helm.sh/

更新22

Vamp是一个开源和自主托pipe的平台,用于pipe理依赖容器技术的(微)面向服务的体系结构。

http://vamp.io/

更新23

分布式,高可用性,数据中心感知计划程序

从给我们stream浪者和其他强大的工具的家伙。

更新24

针对AWS的开放源代码和基于Kubernetes的容器托pipe解决scheme

https://supergiant.io/

更新25

基于Apache Mesos的容器位于德国

https://sloppy.io/features/#features

而Docker Inc.也提供了一个名为Docker云的容器托pipe服务

https://cloud.docker.com/

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的明智方法可能是:

  1. 每个服务将是docker集装箱
  2. 通过链接pipe理内部容器服务发现( 来自docker 0.6.5的新function )
  3. 集装箱将通过Dokku部署
  4. 应用程序将通过造船厂进行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项目看起来相当有前途:

https://github.com/newrelic/centurion

也看看etcd和领事 。

巴拿马型:人类的dockerpipe理。 panamax.io

图:使用Docker的快速,孤立的开发环境 fig.sh

其他职位没有提到的一个选项是Helios。 它是由spotify构build的,并没有试图做太多。

https://github.com/spotify/helios