十大基于Docker的開發工具

jopen 10年前發布 | 30K 次閱讀 Docker

  隨著 Docker 的發展,Docker 的生態圈也越來越成熟,GitHub 上出現了很多與 Docker 相關的開源項目。近日,CenturyLink 在其博客上總結了基于 Docker 的 10 個開發工具,主要集中在 PaaS 平臺、集群管理、持續集成和 Docker 的管理工具等四個方面。具體如下:

  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. Serf

  Serf 是 一個使用 Go 語言編寫的去中心化的服務發現和編排的解決方案,特點是輕量級和高可用,同時具備容錯的特性。Serf 可以運行在 Linux、Mac OS X、Windows 上,節點間通過 Gossip 協議來通信。Serf 是由 Vagrant 團隊開發的,Serf 和 Etcd、ZooKeeper 的區別可以參考此文。如何在 Docker 中使用 Serf 可以參考這個教程

  7. Drone

  Drone 是一個使用 Go 語言編寫的基于 Docker 的持續集成系統。Drone 可以快速提供隔離的虛擬環境編譯測試,而且根據需要保留結果,比使用 VM 更加簡潔有效。如何使用 Drone 和 Docker 搭建全功能的 CI 服務器可以參考此文。使用 Drone 搭建 CI 服務器后,代碼可以不離開公司網絡即可測試,這非常適合大公司的保密原則,另外,由于 Drone 基于 Docker 使用,所以部署到生產環境也非常容易。

  8. Shipyard

  Shipyard 是一個 Docker 鏡像和容器管理工具,除了基本的鏡像構建容器啟動等功能之外,它還具有在瀏覽器中 attach 到容器的功能,并通過 hipache16 來進行容器之間的連接。同時它也支持跨節點的 Docker 管理和容器 Metrics 采集。

  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 中,具體的安裝可以參考官方文檔

來自: InfoQ
                    <span id="shareA4" class="fl">                            
                        </span>
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!