千变万化的Docker生态可能难以梳理,但我们很乐意帮助您更轻松地认清现状。一年前,我写了一篇关于使用Docker的前10家初创公司的文章。这一次我们将讨论使用Docker的十大开源项目。我对它们进行了分类以突出每个项目的重点。DockerPaaS虽然Docker是一项最初诞生于平台即服务(PaaS)的技术(DotCloud),但有多个项目试图从Docker构建微型PaaS。1、Flynn相关网站:https://github.com/flynn截至2014年3月,已有961个star,24个分支。“Flynn就像Sinatra,就像CloudFoundry就像Rails”Flynn是目前最受期待的DockerPaaS之一。这个开源的Docker项目已经有将近1000个star和几十个fork,甚至还没有发布。由于gitpush部署到Docker,因此不难看出为什么它如此受期待。Flynn简化了部署和维护应用程序的工作。Flynn通过允许容器化部署的自助服务管理而不是复杂的配置管理系统,简化了操作和开发人员的生活。Flynn与本文介绍的其他项目的不同之处还在于,它是一个受赞助的开源项目。超过14个赞助商捐赠了超过800,000美元,这个项目绝对值得关注。2.Deis相关网站:https://github.com/opdemand/deis截至2014年3月,拥有1341个star,120个分支。“您的PaaS。您的规则。”Deis拥有1300多颗星和120多个分支。它的历史比Flynn的还要长,也是采用gitpush的部署方式。Deis利用Chef、Docker、Django、Celery、HerokuBuildpacks和Slugbuilder来发挥它的魔力。Deis原生支持Ruby、Python、Node.js、Java、Clojure、Scala、Play、PHP、Perl、Dart和开箱即用的Go。或者,Deis可以使用HerokuBuildpacks、Docker镜像或Chef配方部署任何东西。Deis可以部署在任何系统上,包括每个公共云、私有云或裸机系统。Deis目前支持在EC2、Rackspace和DigitalOcean上进行自动化配置。在即将发布的博文中,我们将更详细地比较Deis和Flynn。3.Dokku相关网站:https://github.com/progrium/dokku截至2014年3月,已有4806颗star,384个分支。“Docker在大约100行Bash中驱动一个迷你Heroku”如果您需要世界上最小的git推送到Docker容器功能,那么Dokku就是您的最佳选择。这个来自localtunnel(一个超级有用的实用程序,将您的本地主机端口反向代理到公共URL)的开发人员的漂亮的开源项目吸引了对该目录的最多关注。虽然不像Deis或Flynn那样功能丰富,但它在Ubuntu13或12.04x64上安装起来非常容易,而且非常易于使用。$wget-qO-https://raw.github.com/progrium/dokku/v0.2.2/bootstrap.sh|sudoDOKKU_TAG=v0.2.2bash注意:12.04之前的用户需要引导稳定,运行apt-getinstall-ypython-software-properties。#p#DockerOrchestration4.CoreOS相关网站:https://github.com/coreos截至2014年3月,有2564颗星,237个分支。“CoreOS可以在极简主义的现代操作系统上实现仓库规模的计算。”CoreOS正在开发将容器化应用程序部署到生产环境的最佳实践。它不是一个单一的开源库,而是许多可以一起使用的开源工具的组合,包括etcd、docker和systemd。我们之前写过一篇介绍通过Fig文件生成CoreOS文件的文章,因为CoreOS的入手难度相当大。etcd库用作通用键/值存储,以在整个应用程序中组合服务和共享服务凭证。与本文介绍的许多其他项目不同,CoreOS既是一个开源项目,也是一个由VC资助的初创公司(这就是为什么CoreOS也进入了我们的10大基于Docker的初创公司名单)。5.Fig相关网站:https://github.com/orchardup/fig截至2014年3月,拥有1526颗star,51个分支。“使用Docker的快速、独立的开发环境。”我已经写了几篇关于Fig的文章,因为它是我最喜欢的Docker小实用程序之一。Fig让您可以编写一个简单的fig.yml文件,其中列出您的应用程序需要的所有Docker容器,并列出它们应该如何连接。编写完fig.yml后,只需运行figup-d,您的应用程序就会启动并运行。该博客目前由fig管理。6、Serf相关网站:https://github.com/hashicorp/serf截至2014年3月,有1652个star,91个分支。“一种去中心化的服务发现和编排解决方案,具有轻量、高可用和容错等优点。”虽然Serf不是Docker特有的,但它是Docker的完美搭档。我最喜欢的新开源项目之一是Serf,它来自开发Vagrant的同一个人。之前写过一篇文章《分散Docker:如何结合使用Serf和Docker?》,详情见http://www.centurylinklabs.com/decentralizing-docker-how-to-use-serf-with-docker/,可以详细了解如何使用SerfwithDocker,但CoreOS和etcd是钉枪的地方,实际上是锤子。Serf在Docker之外其实非常容易使用,可以在很多不同的情况下使用:etcd和CoreOS实际上是非常具体的工具,它们的灵活性不如Serf(但它绝对是强大的)。#p#持续集成/持续交付(CI/CD)7.无人机相关网站:https://github.com/drone/drone截至2014年3月,有2516颗星,133个分支。“构建在Docker之上的持续集成平台。”Drone是另一个既是开源项目又是初创公司的项目。它为您提供一个简单的go二进制代码,作为debian文件分发,为您提供直接连接到Docker的整个CI/CD管道。听起来不是很酷吗?您的代码根本不需要离开您的笔记本电脑或公司的网络进行测试,这对于那些政策禁止使用GitHub和Travis等公共托管服务的大公司的开发人员来说很重要。Drone的另一个吸引人的方面是,您可以将经过全面测试的容器部署到生产环境中,并且知道您在两个地方使用的是完全相同的环境。最后,Drone允许您使用您想要的任何自定义二进制文件和配置构建自定义Docker容器,这比当今大多数持续集成平台灵活得多。用户界面8.Shipyard相关网站:https://github.com/shipyard/shipyard截至2014年3月,有1443颗星,96个分支。《开源Docker管理平台》Shipyard让您通过单一管理界面管理各种Docker资源,包括容器、镜像、主机等更多资源,单一管理界面包括:Multi-HostSupport、ContainerMetrics和fulluse的RESTAPI。我喜欢这部分;要部署Shipyard,您只需运行:$dockerrun-i-t-v/var/run/docker.sock:/docker.sockshipyard/deploysetup然后,您应该能够登录到http://localhost:8000以获得漂亮的UI(可获得更多QuickStart文档)。惊人的!能够以图形方式查看所有容器是很诱人的,而Shipyard在这方面做得很好。#p#Organization9.Kubernetes相关URL:https://github.com/GoogleCloudPlatform/kubernetes截至2014年3月,有3598颗star,501个分支。“谷歌的DockerOrchestrator。”Kubernetes是一种使用开源技术实现的容器集群管理解决方案。换句话说,该系统用于管理多台主机上的容器化应用程序,提供部署、维护和扩展应用程序的基本机制。它的API旨在作为工具、自动化系统和高级API层的开放生态系统的基础。10.Panamax相关网站:https://github.com/centurylinklabs/panamax-ui截至2014年3月,拥有510颗星,43个分支。“面向用户的Docker管理平台。”Panamax是一个容器化的应用程序构建工具,具有托管在GitHub上的开源应用程序市场。Panamax为Docker、Fleet和CoreOS的用户提供了友好的界面。使用Panamax,您可以轻松构建、共享和部署任何容器化应用程序,无论它有多复杂。结语如果用一个开源项目衍生出来的其他开源项目来衡量一个开源项目的健康度,我觉得可以客观地说Docker就是健康度的体现。本文旨在进行全面概述,而不是深入比较。我们打算在未来详细介绍其中一些技术(例如Flynn与Devis)之间的差异。原文链接:http://www.centurylinklabs.com/top-10-open-source-docker-developer-tools/
