Docker邁入云(DockerHub)端(Docker引擎)時代
編者按:本周對于開源應用引擎Docker來說是一個Big week,重磅新聞不斷:2014年6月9號,Docker社區(qū)正式發(fā)布了Docker 1.0,商業(yè)公司Docker Inc.同時宣布提供企業(yè)級服務支持Docker的大規(guī)模商用;同一天,第一屆Docker技術大會在San Francisco高調開幕,預定500人的會場有超過900多人報名,贊助商包括IBM、Redhat、Rackspace等IT巨頭;6月10,谷歌宣布與Docker的全新整合方式,涉及的云服務包括Google App Engine和Google Compute Engine,國內各大技術媒體大規(guī)模轉載相關新聞。中國社區(qū)之前發(fā)表過OpenStack對Docker支持的思路,本次分析下Docker 新發(fā)布的 云+端 開放平臺戰(zhàn)略。
Docker簡介和快速發(fā)展
開源項目Docker于2013年3月啟動,是由PaaS 提供商 dotCloud 開源的一個基于 LXC 的高級容器引擎,源代碼托管在 Github 上,基于谷歌發(fā)布的開源編程語言 Go。Docker讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到主流的 Linux 機器上。容器是完全使用沙箱機制,相互之間不會有任何接口(類似iPhone 的 app),性能開銷很低,可以很容易地在機器和數(shù)據(jù)中心中運行。它出現(xiàn)的意義可以與集裝箱的發(fā)明相比,集裝箱將貨運目標標準化,Docker 將應用程序標準化。Docker 誕生之前,程序員在服務器端部署應用程序的步驟如下:安裝→配置→運行。與傳統(tǒng)部署模式不同,運用 Docker,程序員在服務器端部署應用程序的步驟如下:復制→運行。
在短短一年多時間內,Docker已經發(fā)展為GitHub上的發(fā)展最快的開源組織之一,目前總共有200多萬次下載, 460多個開發(fā)人員貢獻了超過8000次代碼提交,有14000多個利用Docker引擎打包的應用。Docker背后的商業(yè)公司也發(fā)展迅速:DotCloud公司2013年10月改名為Docker Inc,轉型專注于Docker引擎和Docker生態(tài)系統(tǒng);2014年1月獲得1500萬美元高額B輪融資,由著名的投資公司 Greylock Partners 領投,包括 Insight Venture Partners 參與以及原有投資者 Benchmark Capital 和 Trinity Ventures跟投,參與此輪投資的還有 Yahoo 的聯(lián)合創(chuàng)始人楊致遠(Jerry Yang)。Docker深受互聯(lián)網巨頭發(fā)PaaS創(chuàng)業(yè)公司青睞,國內的百度在大規(guī)模實踐Docker,Google 的 Compute Engine 也支持 docker 在其之上運行,Redhat也積極地在RHEL中集成對Docker的支持。
Docker 1.0發(fā)布
Docker 1.0的發(fā)布和谷歌、Rackspace等的實踐標志著Docker向正式大規(guī)模生產系統(tǒng)中的應用方面邁出了艱巨的一步。Docker的官方博客談到:“當許多機構忽視掉我們“不要在生產環(huán)境中運行”的警告愉快地使用Docker時,其他人則在實際部署生產環(huán)境前一直等待Docker產品成熟度達到一定水平,1.0 版本的發(fā)布表明在質量、功能完整、向后兼容和 API 穩(wěn)定性方面已達到企業(yè)級標準;另外,我們?yōu)閷嶋H生產提供了一套全面的解決方案,包括完善的文檔、培訓項目、專業(yè)服務、以及企業(yè)級支持。”
Docker的開放平臺戰(zhàn)略,邁入云+端時代
除了發(fā)布正式的1.0版本,Docker公司也正式宣布了Docker引擎+Docker Hub的開放平臺計劃,邁入云(Docker Hub云應用商店和分發(fā)平臺)+端(將應用發(fā)布到數(shù)據(jù)中心、公有云等運行Docker引擎的服務器平臺上)。這一里程碑意味著 Docker 自身已經轉變?yōu)橐粋€分發(fā)應用的開放平臺,它由 Docker 引擎、容器運行時、打包工具,以及 Docker Hub 組成。
Docker宣布的開放平臺包括如下幾部分:
PLATFORM= Docker Engine + Docker Hub +APIs + Ecosystem
Docker Engine可以自動化地部署應用到可移植的的容器中,這些容器獨立于硬件、語言、框架、打包系統(tǒng)。一個標準的Docker容器包含一個軟件組件及其所有的依賴 ——二進制文件,庫,配置文件,腳本等等。Docker擴展了LXC,使用高層的API,提供輕量虛擬化解決方案來實現(xiàn)進程間隔離??梢赃\行在任何支持 cgroups跟AUFS 的 64位Linux內核上。Docker容器可以封裝任何有效負載,幾乎可以在任何服務器之間進行一致性運行。換句話說,開發(fā)者構建的應用只需一次構建即可多平臺運行。運營人員只需配置他們的服務,即可運行所有的應用。
Docker Hub
Docker Hub提供API和云服務來發(fā)布基于Docker的應用程序。
下圖演示了Docker應用程序的生命周期。在本地基于Docker引擎打包應用程序,然后用DockerHub云服務將程序(集裝箱)放到DockerHub,希望運行此應用的平臺比如GoogleAppEngine再去下載和運行。
Docker應用商店(Official Repositories)
應用商店是對之前DockerHub Registry的商業(yè)化,目前已經有14000多個基于Docker的應用程序package,包含最流行的13個應用-CentOS, MongoDB, MySQL, Nginx, Redis, Ubuntu, and WordPress 等等。應用商店將開放給合作伙伴共建生態(tài)體系,里面包含免費的應用和收費的應用。
Docker 的蓬勃發(fā)展和新戰(zhàn)略將對于服務器端(云)應用部署帶來深遠影響
在6月10號的一個重要會議上,谷歌對Docker給予了相當大支持。在該公司看來,Docker是一個足以改變人們創(chuàng)建軟件方式的東西,它能讓任何程序開發(fā)人員更輕松地、即刻地體會到海量計算性能的優(yōu)勢。Google 去年 12 月 2 日宣布,Google Cloud Platform 開始支持 Docker,Google Compute Engine 此前只支持兩種 Linux 部署方案 Debian、Centos。Google 為全球用戶提供互聯(lián)網服務,需要在分布在全球各地的服務器上部署相關應用程序。傳統(tǒng)的部署模式下,Google 工程師需要在每一臺服務器上進行相當復雜的操作才能夠完成部署。如果使用 Docker,工程師在全球各地服務器上部署應用的過程將變得非常簡單,只需要將應用打包、復制、傳送、粘貼即可完成部署。
谷歌著名的工程師,前加利福尼亞大學伯克利分校教授、分布式系統(tǒng)專家,埃里克·布魯爾(Eric Brewer)表示:“谷歌和Docker是能天然融合的。我們對應用程序未來該如何開發(fā)有著共同的認識。”布魯爾稱,Docker復制了谷歌在其數(shù)據(jù)中心里已執(zhí)行多年的一些東西,即通過一種方法讓成百上千的電腦如一臺巨型電腦般運轉。布魯爾相信,這種架構代表了網絡軟件開發(fā)的未來。來自網易科技的報道稱,“集裝箱化思維”被運用在軟件“運輸”上,Docker可以看作是用代碼編寫出來的國際集裝箱,它可以把任何應用及相關依賴項打包成一個輕量、可移植、自包涵式的容器。
參考資料:
http://blog.docker.com/2014/06/its-here-docker-1-0/
http://cloud.yesky.com/166/37626166.shtml
http://www.csdn.net/article/2014-06-10/2820145
原文出自:http://www.openstack.cn/p1961.html
【編輯推薦】
- 極力推薦:一個Docker的maven插件
- 讓 Docker 無處不在
- 在Docker中運行一個Python的Web應用
- 谷歌擁抱Docker 最火的云計算技術
- 開源軟件部署解決方案 Docker 1.0 正式發(fā)布
【責任編輯:林師授 TEL:(010)68476606】