【編者按】Docker 是一個開源的應用容器引擎,可以自動化地部署應用到可移植的的容器中,這些容器獨立于硬件、語言、框架、打包系統。Docker相對于虛擬機有較高的資源利用率,可以秒級部署, 跨平臺打包部署應用,在眾多PaaS平臺產品中發展迅速,本文來自OpenStack中國社區,作者郭長波。
以下為原文:
最近來自Docker官方網站的文章提到,從OpenStack Icehouse開始,Docker將與Heat集成。 而最早在OpenStack Havana 版本中,Docker 已經作為 Nova driver方式與OpenStack集成。本文將首先簡單介紹Docker,然后介紹其與OpenStack 的集成。
Docker 是一個開源的應用容器引擎,可以自動化地部署應用到可移植的的容器中,這些容器獨立于硬件、語言、框架、打包系統。一個標準的Docker容器包含一個軟件組件及其所有的依賴 ――二進制文件,庫,配置文件,腳本等等。Docker擴展了LXC,使用高層的API,提供輕量虛擬化解決方案來實現進程間隔離。可以運行在任何支持 cgroups跟AUFS 的 64位Linux內核上。
Dock可以用來:
Docker 發展迅速, 它的貢獻者PaaS云提供商 https://dotcloud.com 2014年1月份獲得了B輪1500萬美元融資,Docker社區(https://www.docker.io/)也比較活躍,Docker中文社區(http://www.dockboard.org/)最近也在國內多個城市相繼成功舉行Docker meet up。關于docker更多詳細介紹詳見 http://www.openstack.cn/p828.html
在OpenStack Havana版本中,Docker通過在Nova中以driver的形式與OpenStack的集成,這種實現把Docker容器當作虛擬機來使用。代碼鏈接為 https://github.com/openstack/nova/tree/stable/havana/nova/virt/docker
但在香港OpenStack設計峰會上決定從Nova項目移出Docker driver,放入StackForge項目開發。Openstack的每個項目起初都在StackForge 培育,然后申請進入Incubated項目,考察期滿且通過技術委員會投票正式成為Openstack集成項目。OpenStack 項目中Docker driver的主要維護者給出的解釋是:“關于這個driver我們已經收到積極的反饋,缺少與Cinder、Neutron的集成是我們面臨的障礙,在 StackForge中,允許我們快速迭代開發,持續集成新功能,以便在OpenStack Juno 版本中重新引入” 所以從Icehouse版本開始,Docker driver 代碼樹為https://github.com/stackforge/nova-docker
下面是Nova Docker driver 與OpenStack集成流程圖。
Nova Docker driver 嵌入一個微小的HTTP 客戶端 與 Docker內部REST API 通信,使用HTTP API 來控制Docker容器與獲得容器信息。通過配置Glance,Docker 就能從Glance獲得跟上傳鏡像。關于Docker與Nova集成詳細配置方法,請詳見https://wiki.openstack.org/wiki/Docker
在OpenStack中,社區更傾向于使用Heat來協調使用Docker,而不是在Nova中把它當作一種hypervisor 使用。 Nova Docker driver這種方式有些缺點,例如,標準的API 擴展使用虛擬機特有的功能,但這些功能對于Docker并不適用,而且把Docker當作虛擬機來使用,Nova很難利用Docker有用的功能,例如連接容器(主要指Docker容器間通信),基于以上的原因,Heat是更好的選項。
Heat在OpenStack 中提供資源協調功能,與AWS 的 CloudFormation 兼容,允許用戶上傳描述資源的模版。使用Heat的插件機制,用戶可以基于傳統OpenStack部署方式部署跟管理Docker容器。Heat 插件已經被OpenStack 社區接受,將包含在Icehouse版本中。代碼鏈接為https://github.com/openstack/heat/tree/master/contrib/docker
下面的例子顯示如何使用Heat來協調使用Docker
在上面的例子里,我們只需要添加更多類似”my_docker_container“的片段,就可以創建多個容器并把它們連接起來,它們將不受限于OpenStack API,可以充分利用Docker Remote API。
Docker相對于虛擬機有較高的資源利用率,可以秒級部署, 跨平臺打包部署應用。在眾多PaaS平臺產品中發展迅速,獲得社區認可與支持,與多個知名項目合作集成。 而與Heat項目的集成,為打通IaaS、PaaS 平臺提供了很好的途徑。期待Docker在OpenStack Juno版本中與OpenStack Heat項目的更好集成。
原文鏈接:OpenStack將提供對Docker的支持 (責編/魏偉)