Docker邁入雲(DockerHub)端(Docker引擎)時代

edithfang發表於2014-09-05

Docker簡介和快速發展

開源專案Docker於2013年3月啟動,是由PaaS 提供商 dotCloud 開源的一個基於 LXC 的高階容器引擎,原始碼託管在 Github 上,基於谷歌釋出的開源程式語言 Go。Docker讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到主流的 Linux 機器上。容器是完全使用沙箱機制,相互之間不會有任何介面(類似iPhone 的 app),效能開銷很低,可以很容易地在機器和資料中心中執行。它出現的意義可以與集裝箱的發明相比,集裝箱將貨運目標標準化,Docker 將應用程式標準化。

Docker 誕生之前,程式設計師在伺服器端部署應用程式的步驟如下:安裝→配置→執行。與傳統部署模式不同,運用 Docker,程式設計師在伺服器端部署應用程式的步驟如下:複製→執行。



在短短一年多時間內,Docker已經發展為GitHub上的發展最快的開源組織之一,目前總共有200多萬次下載, 460多個開發人員貢獻了超過8000次程式碼提交,有14000多個利用Docker引擎打包的應用。Docker背後的商業公司也發展迅速:DotCloud公司2013年10月改名為Docker Inc,轉型專注於Docker引擎和Docker生態系統;2014年1月獲得1500萬美元高額B輪融資,由著名的投資公司 Greylock Partners 領投,包括 Insight Venture Partners 參與以及原有投資者 Benchmark Capital 和 Trinity Ventures跟投,參與此輪投資的還有 Yahoo 的聯合創始人楊致遠(Jerry Yang)。Docker深受網際網路巨頭髮PaaS創業公司青睞,國內的百度在大規模實踐Docker,Google 的 Compute Engine 也支援 docker 在其之上執行,Redhat也積極地在RHEL中整合對Docker的支援。

Docker 1.0釋出

Docker 1.0的釋出和谷歌、Rackspace等的實踐標誌著Docker向正式大規模生產系統中的應用方面邁出了艱鉅的一步。Docker的官方部落格談到:“當許多機構忽視掉我們“不要在生產環境中執行”的警告愉快地使用Docker時,其他人則在實際部署生產環境前一直等待Docker產品成熟度達到一定水平,1.0 版本的釋出表明在質量、功能完整、向後相容和 API 穩定性方面已達到企業級標準;另外,我們為實際生產提供了一套全面的解決方案,包括完善的文件、培訓專案、專業服務、以及企業級支援。”

Docker的開放平臺戰略,邁入雲+端時代

除了釋出正式的1.0版本,Docker公司也正式宣佈了Docker引擎+Docker Hub的開放平臺計劃,邁入雲(Docker Hub雲應用商店和分發平臺)+端(將應用釋出到資料中心、公有云等執行Docker引擎的伺服器平臺上)。這一里程碑意味著 Docker 自身已經轉變為一個分發應用的開放平臺,它由 Docker 引擎、容器執行時、打包工具,以及 Docker Hub 組成。



Docker宣佈的開放平臺包括如下幾部分:

PLATFORM= Docker Engine + Docker Hub +APIs + Ecosystem

Docker Engine可以自動化地部署應用到可移植的的容器中,這些容器獨立於硬體、語言、框架、打包系統。一個標準的Docker容器包含一個軟體元件及其所有的依賴 ——二進位制檔案,庫,配置檔案,指令碼等等。Docker擴充套件了LXC,使用高層的API,提供輕量虛擬化解決方案來實現程式間隔離。可以執行在任何支援 cgroups跟AUFS 的 64位Linux核心上。Docker容器可以封裝任何有效負載,幾乎可以在任何伺服器之間進行一致性執行。換句話說,開發者構建的應用只需一次構建即可多平臺執行。運營人員只需配置他們的服務,即可執行所有的應用。


Docker Hub

Docker Hub提供API和雲服務來發布基於Docker的應用程式。



下圖演示了Docker應用程式的生命週期。在本地基於Docker引擎打包應用程式,然後用DockerHub雲服務將程式(集裝箱)放到DockerHub,希望執行此應用的平臺比如GoogleAppEngine再去下載和執行。


Docker應用商店(Official Repositories)

應用商店是對之前DockerHub Registry的商業化,目前已經有14000多個基於Docker的應用程式package,包含最流行的13個應用-CentOS, MongoDB, MySQL, Nginx, Redis, Ubuntu, and WordPress 等等。應用商店將開放給合作伙伴共建生態體系,裡面包含免費的應用和收費的應用。


Docker 的蓬勃發展和新戰略將對於伺服器端(雲)應用部署帶來深遠影響

谷歌對Docker給予了相當大支援。在該公司看來,Docker是一個足以改變人們建立軟體方式的東西,它能讓任何程式開發人員更輕鬆地、即刻地體會到海量計算效能的優勢。Google 去年 12 月 2 日宣佈,Google Cloud Platform 開始支援 Docker,Google Compute Engine 此前只支援兩種 Linux 部署方案 Debian、Centos。Google 為全球使用者提供網際網路服務,需要在分佈在全球各地的伺服器上部署相關應用程式。傳統的部署模式下,Google 工程師需要在每一臺伺服器上進行相當複雜的操作才能夠完成部署。如果使用 Docker,工程師在全球各地伺服器上部署應用的過程將變得非常簡單,只需要將應用打包、複製、傳送、貼上即可完成部署。

谷歌著名的工程師,前加利福尼亞大學伯克利分校教授、分散式系統專家,埃裡克·布魯爾(Eric Brewer)表示:“谷歌和Docker是能天然融合的。我們對應用程式未來該如何開發有著共同的認識。”布魯爾稱,Docker複製了谷歌在其資料中心裡已執行多年的一些東西,即通過一種方法讓成百上千的電腦如一臺巨型電腦般運轉。布魯爾相信,這種架構代表了網路軟體開發的未來。來自網易科技的報導稱,“集裝箱化思維”被運用在軟體“運輸”上,Docker可以看作是用程式碼編寫出來的國際集裝箱,它可以把任何應用及相關依賴項打包成一個輕量、可移植、自包涵式的容器。
相關閱讀
評論(2)

相關文章