如何在生产中扩展Docker容器

Jam*_*Lin 139 production scale docker

所以我最近发现了这个很棒的工具,它说

Docker是一个开源项目,可以从任何应用程序轻松创建轻量级,可移植,自给自足的容器.开发人员在笔记本电脑上构建和测试的容器可以在规模,生产,虚拟机,裸机,OpenStack集群,公共云等中运行.

假设我有一个运行Nginx的docker镜像,并且一个网站连接到外部数据库.如何在生产中扩展容器?

Mar*_*nor 581

简短的回答是你必须编写自己的逻辑才能做到这一点.

我希望这些功能能够从以下项目中出现,构建在docker之上,旨在支持生产中的应用程序:

更新1

我最近发现的另一个相关项目:

更新2

最新版本的Openstack包含对管理Docker容器的支持:

更新3

用于管理Docker实例的系统

并介绍了如何使用Packer,Docker和Serf等工具来提供不可变的服务器基础架构模式

更新4

关于如何使用serf将docker容器连接在一起的简洁文章:

更新5

使用Marathon框架在Mesos上运行Docker

Mesosphere Docker开发人员教程

更新6

Tsuru上运行Docker,因为它支持docker-cluster隔离的调度程序部署

更新7

基于Docker的环境编排

大师-NG

更新8

decking.io

更新9

谷歌kubernetes

更新10

Redhat重构了他们的openshift PAAS以集成Docker

更新11

Docker NodeJS lib包装Docker命令行并从json文件管理它.

更新12

亚马逊的新容器服务可以在群集中进行扩展.

更新13

严格来说,Flocker并没有"扩展"应用程序,但它旨在实现一个相关的功能,即使多个docker主机上的状态容器(运行数据库服务?)可移植:

https://clusterhq.com/

更新14

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

http://panamax.io/

更新15

Docker项目现在正在解决编排问题(见公告)

更新16

Spotify Helios

也可以看看:

更新17

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

显示了很多承诺,可以轻松设置Docker编排框架,如Kubernetes和Docker swarm.

更新18

Rancher是一个快速成熟的项目

http://rancher.com/

不错的UI和强烈关注hyrbrid Docker基础设施

更新19

格项目是的Cloud Foundry的管理容器集群的一个分支.

更新20

Docker最近买了Tutum:

https://www.docker.com/tutum

更新21

部署在Kubernetes上的应用程序的软件包管理器.

http://helm.sh/

更新22

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

http://vamp.io/

更新23

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

来自给我们Vagrant和其他强大工具的人.

更新24

AWS的容器托管解决方案,开源并基于Kubernetes

https://supergiant.io/

更新25

基于Apache Mesos的容器位于德国

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

Docker Inc.还提供称为Docker cloud的容器托管服务

https://cloud.docker.com/

更新26

Jelastic是一种托管PAAS服务,可自动扩展容器.

  • 可能值得这个列表:https://github.com/signalfuse/maestro-ng (2认同)
  • @ MarkO'Connor`mesosphere/mesos-docker`项目已被弃用,取而代之的是`mesosphere/deimos`:https://github.com/mesosphere/deimos (2认同)

gab*_*rtv 42

Deis自动扩展Docker容器(除其他外).

Deis(发音为DAY-iss)是一个开源PaaS,可以在您自己的服务器上轻松部署和管理应用程序.Deis以DockerCoreOS为基础,提供轻量级PaaS和Heroku灵感的工作流程.

这是开发人员工作流程:

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
Run Code Online (Sandbox Code Playgroud)

Deis自动在CoreOS集群中部署Docker容器,并配置Nginx路由器以将请求路由到健康的Docker容器.如果主机死机,则容器会在几秒钟内自动在另一台主机上重新启动.只需浏览代理网址或使用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
Run Code Online (Sandbox Code Playgroud)

要查看此操作,请访问http://deis.io/overview/上的终端视频.您还可以了解Deis概念或直接部署自己的私有PaaS.

  • +1我正兴趣地关注你的项目.保持良好的工作! (3认同)

Mag*_*res 19

你可以试试Tsuru.Tsuru是一个灵感来自Heroku的开源PaaS,它已经在Globo.com上生产了一些产品(巴西最大的广播电视公司的互联网部门)

它管理应用程序的整个流程,因为容器创建,部署,路由(带有hipache)具有许多很好的功能,如docker cluster,单元扩展,隔离部署等.

请查看下面的文档:http: //docs.tsuru.io/

这里我们的帖子涵盖了我们的环境:http: //blog.tsuru.io/2014/04/04/running-tsuru-in-production-scaling-and-segregating-docker-containers/


小智 18

看看Rancher.com - 它可以管理多个Docker主机等等.


tom*_*sop 9

扩展Docker的一种明智的方法可能是:

  1. 每个服务都是一个docker容器
  2. 通过链接管理的内部容器服务发现(来自docker 0.6.5的新功能)
  3. 容器将通过Dokku部署
  4. 应用程序将通过Shipyard进行管理,而Shipyard则使用hipache

来自Yandex的另一个docker开源项目: