`
usenrong
  • 浏览: 515284 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

十大基于Docker的开发工具

阅读更多

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

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

  2. 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量。

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

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

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

  6. Atomic
    Atomic是一个基于Fedora的用于运行Docker容器的原型系统,它从Fedora(在将来可能会是从另一个发行版)获取软件包,并扮演了一个“操作系统二进制文件的Git”的角色,允许对不同集合的软件包进行操作安装,并在它们之间进行原子的整体切换。因为Atomic项目与它的上游的Red Hat产品几乎承载着一样的二进制文件和内核,所以它同样会从上游的工程工作和支持中受益,这成为了它发展过程中的一项绝对优势。Atomic项目目前还没有达到用于生产环境的要求,仍在开发中。

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

  8. Kubernetes
    Kubernetes是来自Google的容器集群管理工具。Kubernetes支持跨平台,它可以在除Google以外的其它云平台中运行,比如AWS。基于Docker之上的Kubernetes可以构建一个容器的调度服务,其目的是让用户通过Kubernetes集群来管理云端容器的集群,而无需用户进行复杂的设置工作。系统会自动选取合适的工作节点来执行具体的容器集群调度处理工作。目前Kubernetes已经得到得到微软、IBM、红帽、CoreOS等公司的支持。

  9. 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。

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

另外,为了更好的促进Docker在国内的发展以及传播,InfoQ开设了《深入浅出Docker》专栏,邀请Docker相关的布道师、开发人员、技术专家来讲述Docker的各方面内容。InfoQ希望Docker专栏能帮助读者迅速了解Docker,希望新的技术、新的理念能让更多的人受益。

分享到:
评论

相关推荐

    基于Docker和Kubernetes的企业级DevOps实践pdf

    基于Docker和Kubernetes的企业级DevOps实践pdf

    基于Docker/Qemu/Bochs的Linux 0.11内核开发环境源码设计

    本项目为基于Docker、Qemu和Bochs构建的Linux 0.11内核开发环境源码设计,总计包含150个文件,其中包括50个C源文件、33个头文件、8个汇编文件、7个Git忽略文件、6个脚本文件、4个xz压缩文件、3个Markdown文件、3个...

    CentOS中实现基于Docker部署BI数据分析.doc

    我们将从了解 CentOS 和 Docker 的基本概念开始,然后逐步介绍如何在 CentOS 中安装 Docker,安装 Wyn BI 工具,最后实现基于 Docker 部署 BI 数据分析。 了解 CentOS CentOS 是一个免费且开源的操作系统,是一个...

    基于Docker的DevOps流水线.pdf

    基于Docker的DevOps流水线是指使用Docker容器化技术来实现自动化的软件开发、测试和部署流程。Docker容器化技术可以将应用程序和依赖项打包到一个容器中,使得应用程序在不同的环境中可以轻松地部署和运行。 流水线...

    基于docker的开发者集成环境 (docker,nodejs,php,nginx,mongo,mysql,redis等)

      它是基于docker的开发者集成环境,包含丰富的软件,但它是未来开发者的趋势,因为基于docker,使你本机电脑有云开发的效果。 一键安装所有程序,或者单独使用某个程序;方便版本切换,因为它是基于docker,所以...

    基于Docker的分布式程序判定系统设计与实现.pdf

    综上所述,基于Docker的分布式程序判定系统的设计与实现为编程教学和实践提供了新的工具和方法,有助于提高教育质量和学生的学习兴趣。此外,它还推动了教学考核方式的改革,促进了教育信息化的进程。未来该系统还...

    基于Docker的开发者平台:appwrite

    项目标签:[开发工具] [可视化工具] [协作工具] [协作平台] [微服务架构] [开发者平台] 推荐理由:一个端到端的开发者平台,基于Docker构建。它提供了容器化的微服务库,可应用于网页端、移动端和后端。Appwrite通过...

    Takeoff是一个基于docker的快速原型应用开发工具箱

    使用docker和docker-compose来最大限度地减少设置前端,后端和数据库服务器的麻烦。 几秒钟内,您将有一个热重新加载的前端和后端,允许您进行更改,而无需通常重新启动服务器。

    唱吧K歌亭基于Docker的微服务架构.docx

    本文汇总了唱吧 K 歌亭基于 Docker 的微服务架构,介绍了微服务架构的设计理念、服务发现机制、容器编排工具的选择等内容。 1. 微服务架构的设计理念 微服务架构是一种架构模式,它将单体式架构拆分成多个小型服务...

    Go-SWIRL专注于Swarm集群基于Web的Docker管理工具

    Go-SWIRL 是一款专为 Docker Swarm 集群打造的基于Web的管理工具,旨在简化用户对容器化应用的管理和监控过程。它由 Go 语言编写,充分利用了 Go 语言的高性能和跨平台特性,为开发者提供了一个高效、便捷的交互界面...

    Docker 管理工具-DockerFly.zip

    Dockerfly是基于 Docker1.12+ (Docker API 1.24+) 开发出Docker 管理工具,提供里最基本的基于 Docker 的管理功能,目的是能够方便广大Docker初学者以及 Docker 管理员能够快速的进行Docker 容器的管理和维护

    基于OpenStack的Docker开发

    【标题】"基于OpenStack的Docker开发"深入解析 在现代云计算环境中,Docker和OpenStack已经成为两个不可或缺的关键技术。Docker以其轻量级容器化能力,为开发者提供了便捷的软件部署和管理方式;而OpenStack作为一...

    基于Docker的更新、扩容与自动容错.pdf

    本文件【标题】"基于Docker的更新、扩容与自动容错.pdf"【描述】,讨论了如何利用Docker技术进行应用的无缝更新、扩容以及自动容错处理,这些是现代应用系统中至关重要的运维能力。 首先,我们来看Docker技术本身。...

    Linux 内核实验室 - 基于 Docker 的极速 Linux 内核学习、开发和测试环境.rar

    本项目致力于创建一个基于 Docker + QEMU 的 Linux 实验环境,方便大家学习、开发和测试 Linux 内核。 Linux Lab 是一个开源软件,不提供任何保证,请自行承担使用过程中的任何风险。 项目功能 现在,Linux Lab 已经...

    Node.js-docker-dashboard基于控制台的docker工具

    docker-dashboard:基于控制台的 docker 工具,代码简单易读,可以做为学习 Node.js 的实践项目

    基于docker-compose的配置使用(免费提供全部源码)

    基于Docker Compose的配置使用是开发和部署容器化应用程序的高效方法,提供了自动化和简化的多容器应用管理。Docker Compose是一种定义和运行多容器Docker应用的工具,通过一个简单的YAML文件配置服务、网络和卷。 ...

    基于Docker Swarm的台站分布式系统设计的技术可行性分析.pdf

    本文主要分析了基于Docker Swarm的台站分布式系统设计的技术可行性,以期为广西广播电视无线发射台站的自动化和远程控制系统提供技术支撑。 Docker是一个开源的应用容器引擎,通过Docker,开发者可以将应用和依赖...

    Docker开源工具平台介绍.docx

    Docker开源工具平台是当前业内最流行的容器生态系统,它提供了许多工具和服务来帮助开发人员和DevOps工程师完善开发流程的每个阶段。以下是Docker工具分类列表: 编排和调度 1. Kubernetes:Kubernetes是市场上最...

    基于微服务和Docker容器技术的PaaS云平台架构设计.docx

    本文档旨在探讨一种高效的云平台建设方法,该方法基于微服务架构和Docker容器技术,旨在为开发团队提供一套完整的服务快速开发、部署、运维管理以及持续集成与持续交付(CI/CD)的解决方案。该PaaS(Platform as a ...

    Go-opendcp基于Docker容器的云服务运维平台

    "Go-opendcp基于Docker容器的云服务运维平台"是一个使用Go语言开发的开源项目,专门设计用于管理和运维基于Docker容器的云服务。在现代云计算环境中,Docker容器因其轻量级、可移植性和资源隔离性而受到广泛应用。Go...

Global site tag (gtag.js) - Google Analytics