什麼是Docker?

如果說個人主機時代大家比拼的關鍵是CPU主頻的高低和內存的大小,那麼雲計算時代,虛擬化技術無疑是整座信息技術大廈最核心的一塊基石。伴隨着信息技術產業的發展,虛擬化技術已經應用到各種關鍵場景中。從最早上世紀60年代IBM推出的大型主機虛擬化到後來X86平臺上的虛擬化,虛擬化技術自身也在不斷豐富和創新。

什麼是Docker

Docker是基於Go語言實現的雲開源項目,誕生於2013年初,最初發起者是dotCloud公司。Docker自開源後收到廣泛的關注和討論,目前已經多個相關項目,逐漸形成了圍繞Docker的生態體系。dotCloud公司後臺也改名爲Docker Inc,專注於Docker相關技術和產品的開發。Docker項目目前已經加入Linux基金會,遵循Apache2.0協議,全部開源代碼均 https://github.com/docker/docker 上進行維護。在最近一次Linux基金會的調查中,Docker是僅次於OpenStack的最受歡迎的雲計算開源項目。

Linux容器技術

Docker引擎的基礎是Linux容器技術。IBM DeveloperWorks上給出了關於容器技術的準確描述:

容器有效地將由單個操作系統管理的資源劃分到孤立的組中,以便更好地在孤立的組之間平衡有衝突的資源使需求。與虛擬化相比,這樣既不需要指令級模擬,也不需要及時編譯。容器可以在覈心CPU本地運行指令,而不需要任何專門的解釋機制。此外,也避免了準虛擬化和系統調用替換中的複雜性。

從linux容器到Docker。在LXC的基礎上,Docker進一步優化了容器的使用體驗。Docker提供了各種容器管理工具(如分發、版本、移植等)讓用戶無需關注底層操作,可以簡單明瞭地管理和使用容器。用戶操作Docker容器就像操作一個輕量級的虛擬機那樣簡單。
可以簡單地講Docker容器理解爲一種沙(Sandbox)。每個容器內運行了一個應用,不同的容器相互隔離,容器之間也可以建立通信機制。容器的創建和停止都十分快速,容器自身對資源的需求也十分有限,遠遠低於虛擬機。

Docker的好處

Docker項目的發起人和Docker Inc.的CTO Solomom Hykes認爲,Docker在正確的地點、正確的時間順應了正確的趨勢——即高效地構建應用。現在開發者需要能方便地創建運行在雲平臺上的應用,也就是說應用必須能夠脫離底層機器,而且同時必須是“任何時間任何地點”可獲取的。因此,開發者們需要一種創建分佈式應用程序的方式,這也就是Docker所能夠提供的。
一個簡單的應用場景的例子。假設用戶試圖基於最常見的LAMP(Linux+Apache+Mysql+PHP)組合來運維一個網站。按照傳統的做法,首先,需要安裝Apache、Mysql、和PHP以及它們各自運行所依賴的環境;之後分別對它們進行配置;經過大量的操作之後,還需要進行功能測試,看是否工作正常;如果不正常,則意味着更多的時間代價和不可控的風險。可以想象,如果再加上更多的應用,事情會變得更加難以處理。更可怕的是,一旦需要服務器遷移(例如從阿里雲遷移到騰訊雲),往往需要重新部署和調試。這些瑣碎而無趣的“體力活”極大地降低了工作效率。

具體來說,Docker在開發和運維過程中,具有如下幾個方面的優勢:

  • 更快速的支付和部署。使用Docker,開發人員可以使用鏡像來快速構建一套標準的開發環境;開發完成之後,測試和運維人員可以直接使用相同環境來部署代碼。Docker可以快速創建和刪除容器,實現快速迭代,大量節約開發、測試、部署的時間。並且,各個步驟都有明確的配置和操作,整個過程全程可見,使團隊更容易理解應用的創建和工作過程。
  • 更高效的資源利用。Docker容器的運行不需要額外的虛擬化管理程序支持,它是內核級的虛擬化,可以實現更高性能,同時對資源的額外需求很低。
  • 更輕鬆的遷移和擴展。Docker容器幾乎可以在任意平臺上運行,包括物理、虛擬機、公有云、私有云、個人電腦、服務器等。這種兼容性讓用戶可以在不同平臺之間輕鬆遷移應用。
  • 更簡單的更新管理。使用Dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作。並且所有修改都以增量的方式進行分發和更新,從而實現自動化並且高效地容器管理。

Docker與虛擬機比較:

  1. Docker容器很快,啓動和停止都可以在秒級實現,這相比傳統的虛擬機方式要快得多。
  2. Docker容器對系統資源需求很少,一臺主機上可以通知運行數千個Docker容器。
  3. Docker通過類似Git的操作來方便用戶獲取、分發和更新應用鏡像,指令簡明,學習成本較低。
  4. Docker通過Dockerfile配置文件來支持靈活的自動化創建和部署機制,提高工作效率。
發佈了63 篇原創文章 · 獲贊 6 · 訪問量 5630
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章