十大基于Docker的开发工具

  随着Docker的发展,Docker的生态圈也越来越成熟,GitHub上出现了很多与Docker相关的开源项目。近日,CenturyLink在其博客上总结了基于Docker的10个开发工具,主要集中在">PaaS平台、集群管理、持续集成和Docker的管理工具等四个方面。InfoQ中文站在其基础上进行了整理,具体如下。

  Flynn

  Flynn是一个使用Go语言编写的开源PaaS平台,Flynn使用模块化的设计,任何一个模块都可以独立的进行修改、升级和替换。Flynn的目标是简化分布式环境中应用的部署和维护,通过使用git push命令,Flynn就可以将应用部署到Docker,从而省去了复杂的配置和操作。Flynn的架构大致分为两层,Layer 0是底层的资源层,提供分布式配置、任务调度、服务发现、主机隔离等基础功能;Layer 1基于Layer 0构建了一个用于集群中管理、部署、扩展服务的系统,主要包括管理API/客户端、Git接收器、数据存储、路由。Flynn目前仍在开发中,尚未发布稳定版,但已经获得了很多公司的资助,它被称为是下一代的开源PaaS平台。

  Deis

  Deis也是一个支持共有云和私有云的开源PaaS系统,Deis基于Docker和CentOS构建了一个类Heroku的PaaS系统。Deis主要设计用来和不同的云提供商进行交互,目前支持 Rackspace、EC2、 DigitalOcean、Google Compute Engine、Bare-Metal。Deis使用out-of-the-box的方式支持Ruby、Python、Node.js、Java、 Clojure、Scala、Play、PHP、Perl、Dart和Go语言,同样支持git push部署。Flynn和Deis都是两个基于Docker的云计算微PaaS技术,关于它们的区别,可以参考这篇文章,作者从架构、实现方式等多方面对二者进行了比较,Deis目前也尚未发布1.0版本,但在GitHub上已经有2000+的star量。

  Dokku

  Dokku是一个迷你版的Heroku,基于Docker使用100行左右的Bash代码编写,简单的安装和配置后,即可使用Git命令将应用部署到本地的Dokku平台(当使用git push命令的时候,Dokku会使用buildpack检测应用,然后再部署)。Dokku实际上相当于一个单机版的Heroku,它包含4个组件,分别是Docker、Buildstep、pluginhook、sshcommand。Dokku目前支持Node.js、Ruby、Python。

  CoreOS

  CoreOS是一种新的、架构体系重新设计的Linux发行版,可以运行在既有的硬件或者云上。CoreOS不提供类似yum或者apt类似的包管理工具,用户不需要在CoreOS中安装软件,而是让程序都在Docker容器中去运行。CoreOS使用systemd和fleet来对容器进行管理,通过 etcd进行服务发现和配置信息共享。CoreOS目前风头正劲,目前已经获得融资并于上周宣布收购私有Docker仓库服务商Quay.io,进军企业级的Registry。另外,CoreOS的etcd等组件也获得了社区的认可,并得到了大规模使用。CoreOS已经发布首个稳定版本,目前主流的云服务商都提供了对CoreOS的支持。

  Fig

  Fig是一个基于Docker的用于快速搭建开发环境的工具,目前Fig团队已经加入Docker公司。Fig通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。Fig可以和Docker一起来构建基于Docker的复杂应用,CoreOS的功能强大但是配置比较复杂,而Fig相对而言比较简单,但是很难在多台服务器上做扩展,如何使用Fig构建多个容器的复杂应用并且把这些应用部署到基于CoreOS 的生产环境可以参考这篇文章。从Docker官方收购Fig也可以看到该项目的重要性,Fig目前尚未发布1.0版本。

  Serf

  Serf 是一个使用Go语言编写的去中心化的服务发现和编排的解决方案,特点是轻量级和高可用,同时具备容错的特性。Serf可以运行在Linux、Mac OS X、Windows上,节点间通过Gossip协议来通信。Serf是由Vagrant团队开发的,Serf和Etcd、ZooKeeper的区别可以参考此文。如何在Docker中使用Serf可以参考这个教程。

  Drone

  Drone是一个使用Go语言编写的基于Docker的持续集成系统。Drone可以快速提供隔离的虚拟环境编译测试,而且根据需要保留结果,比使用VM更加简洁有效。如何使用 Drone和Docker搭建全功能的CI服务器可以参考此文。使用Drone搭建CI服务器后,代码可以不离开公司网络即可测试,这非常适合大公司的保密原则,另外,由于Drone基于Docker使用,所以部署到生产环境也非常容易。

  Shipyard

  Shipyard是一个Docker镜像和容器管理工具,除了基本的镜像构建容器启动等功能之外,它还具有在浏览器中attach到容器的功能,并通过hipache16来进行容器之间的连接。同时它也支持跨节点的Docker管理和容器Metrics采集。

  Panamax

  Panamax是一个CenturyLink开源的Docker管理工具,用户可以把多个Docker容器组合为模板并分享到GitHub。 Panamax中的应用是由基于Docker镜像的独立服务组合而成,这些Docker镜像来自Docker Hub或者其它的Docker registry。Web的用户界面允许每个服务可以连接到其他服务,并可以配置环境变量、端口绑定、卷。另外也可以添加自定义的Docker运行命令。当这些服务组合在一起成为一个具备完整功能的应用后就可以作为一个模板保存到GitHub。Panamax的最初版本运行在由Vagrant管理的 VirtualBox上,由于Vagrant的限制,目前Panamax仅可运行在Mac和Linux的VirtualBox上,并不支持其他虚拟化平台。CenturyLink的云平台也将会支持Panamax。

  Boot2Docker

  Boot2Docker是一个专为Docker而设计的轻量级Linux发型包,解决Windows或者OS X用户不能安装Docker的问题。Boot2Docker完全运行于内存中,24M大小,启动仅5-6秒。Boot2Docker需要运行在 VirtualBox中,具体的安装可以参考官方文档。

时间: 2024-11-05 14:57:25

十大基于Docker的开发工具的相关文章

DockOne微信分享(八十七):基于Docker的开发云提高资源利用率的实践

本文讲的是DockOne微信分享(八十七):基于Docker的开发云提高资源利用率的实践[编者的话]Docker的出现,为更简便.更细粒度地对云资源的调控提供了一个强有力的支撑,WeX5开发者云基于Rancher+Docker,在如何提高物理资源利用率的课题上做了一些探索和研究,在保障用户体验良好的前提下,大大提高了物理资源的利用率,有效地降低了运营成本. 一般情况下,开发者从无到有开发一个可用于公网访问的HTML5的App应用的流程是这样的:配置开发环境.开发应用.本地调试.租用公网服务器.注

基于Docker的开发模式驱动持续集成落地实施

11月30日,资深质量优化专家陈能技老师,在[DBA+社群]中间件用户组进行了一次主题为"基于Docker的开发模式驱动持续集成落地实施"的线上分享.小编特别整理出其中精华内容,供大家学习交流.同时,也非常感谢陈能技老师对DBA+社群给予的大力支持.    嘉宾简介   资深质量优化专家,12年软件测试与质量管理经验 <软件性能测试诊断分析与优化>等多本IT畅销书作者 演讲实录   今天主要交流的主题是基于Docker的开发模式如何驱动持续集成落地实施,这里会涉及两个主要的

基于Docker API的工具综述

本文讲的是基于Docker API的工具综述,[编者的话]考虑到过去三年Docker取得的骄人成绩以及远程API的成熟,毫无疑问,Docker会成为开发者的首选平台.随着Docker的发展壮大,开发者也共享了很多围绕Docker的开源项目,本文中将讨论这些项目是如何使用Docker API的. Docker是在虚拟容器中简易部署应用最前沿技术.之前我们已经知道Docker可以减少开发维护复杂度,使得正在成长中的架构得以实践.这种架构使得整个应用以及底层操作系统以轻量级容器方式创建和部署,而不是依

3大主流浏览器Web开发工具

一个快速加载网页在很大程度上节约用户的浏览页面时间成本,作为一名站长,我们要寻求一些解决办法,传统的在浏览器中 "右键-查看源代码"已经过时了,它不能做良好的代码检查,作为一名优秀的web开发人员,应该不断学习和尝试新事物.下面我就介绍下三大主流浏览器的 web人员开发工具介绍及其使用方法. 火狐(Firefox)的Firebug和YSlow Firebug是一个非常成熟和完善的工具(点此下载),各种浏览器下都能使用(IE,Firefox,Opera, Safari),通常我在火狐浏览

十大界面原型与布局工具

创建网页或者程序不仅要关注主页的排版以及与主题想匹配的图片,还应注重视觉设计,这是因为它更能吸引用户进而提升搜索量.因此,项目开发首先需要确立良好的设计,创意是必不可少的.所以,项目经理.Web设计师.开发者在线框和原型工具方面需要具备一定的功底. 本文罗列了2013年最新的10大界面原型与布局工具以帮助设计师和开发者创建出更加优秀的产品. 1. Solidify Solidify允许用户在模型.线框或者草图中获取原型图.此外,你还可以快速地查看屏幕界面原型.如果在桌面.计算机或者手机上运行So

再推荐十款免费的php开发工具_php技巧

下面介绍10个免费.强大的PHP编辑器/开发工具.这些编辑器拥有调试器.增量执行PHP脚本.查看每一行的所有变量值等功能.1) Notepad ++ Notepad++是一款非常有特色的编辑器,是开源软件,可以免费使用.支持的语言: C, C++, Java , C#, XML, HTML, PHP, Javascript!  功能有: 1. Notepad内置支持多达 27 种语法高亮度显示(囊括各种常见的源代码.脚本,值得一提的是,完美支持.nfo 文件查看),也支持自定义语言: 2. No

基于Docker的开发实践案例分享

当下,容器已成为一个非常热门的趋势,而只要谈到容器大家也通常都会说到Docker.甚至,容器已经有了自己的动词形式containerizing,用以描述使用Docker将应用程序打包. 在热烈争论之后,Docker领域的重点迁移到如何在现实生产环境中使用容器,人们纷纷将"containerization"的哲学运用到存储.网络,亦或是管理. 毫无疑问,在这个强劲的势头下,Docker可以在生产环境稳定使用肯定不会太遥远.而这里将分享一些基于Docker的用例,它们已经得到了工程师的验证

避开十大错误 找到数据库开发捷径

尽管软件发展中的热点技术层出不穷,不断地变化,有一些东西却一直未曾改变,其中之一就是开发人员对数据库的使用和设计开发-- 你可能会兴奋地紧跟时尚创建一个AJAX Web界面,或者使用最近迷人的Windows用户界面,但是透过这些各种各样的外观界面,你可能依然需要从后台数据库中提取或存取所需要的数据--这一点就如同十多年以前人们对数据库的操作是一样的. 然而,令人吃惊的是,现在还有很多开发者依然在不断地重复着很多年以前就存在的数据库使用和开发上的错误.或许是有太多的开发者只是来学习如何使用一个数据

9大跨平台移动 App 开发工具推荐

如今,移动应用开发已经变得越来越重要,开发人员面临最大的挑战之一就是在多个平台上运行应用程序.最新的应用程序代码支持"一次编写,到处运行"(WORA)的概念,即只要在一个平台上编写代码一次,就可以在多个平台运行.本文我们将为大家介绍 9 个优秀的移动 App 开发工具,帮你在短时间内设计出最前沿.最高效的应用. 9.移动应用开发工具 Codename One Codename One是一个针对移动应用开发者的.开源的.跨平台的Java工具,旨在帮助Java开发者通过单一代码库来针对所有