docker究竟是什麼 為什麼這麼流行 它的優點和缺陷有哪些?

來源:互聯網
上載者:User
 Docker是什嗎?

  簡單得來說,Docker是一個由GO語言寫的程式啟動並執行“容器”(Linux containers, LXCs); 目前雲端服務的基石是作業系統層級的隔離,在同一台物理伺服器上虛擬出多個主機。Docker則實現了一種應用程式層級的隔離; 它改變我們基本的開發、操作單元,由直接操作虛擬機器主機(VM),轉換到操作程式啟動並執行“容器”上來。

  Docker是為開發人員和系統管理員設計的,用來發布和運行分布式應用程式的一個開放性平台。由兩部分組成:

  Docker Engine: 一個攜帶型、輕量級的運行環境和包管理器。(注* 單OS vs 單線程,是不是跟NodeJS特別像?)

  Docker Hub: 為建立自動化工作流程和分享應用建立的雲端服務組成。(注* 雲端鏡像/包管理 vs npm包管理,是不是跟npm特別像?)

  從2013年3月20日,第一個版本的Docker正式發布到 2014年6月 Docker 1.0 正式發布,經曆了15個月。 雖然發展曆程很短,但Docker正在有越來越流行的趨勢。

  其實Container技術並非Docker的創新,HeroKu, NodeJitsu 等雲端服務商都採用了類似這種輕量級的虛擬化技術,但Docker是第一個將這這種Container技術大規模開源並被社區廣泛接受的。

 好的部分

  Docker相對於VM虛擬機器的優勢十分明顯,那就是輕量和高效能和便捷性, 以下部分摘自: KVM and Docker LXC Benchmarking with OpenStack

  快

  運行時的效能可以擷取極大提升(經典的案例是提升97%)

  管理操作(啟動,停止,開始,重啟等等) 都是以秒或毫秒為單位的。

  敏捷

  像虛擬機器一樣敏捷,而且會更便宜,在bare metal(裸機)上布署像點個按鈕一樣簡單。

  靈活

  將應用和系統“容器化”,不添加額外的作業系統,

  輕量

  你會擁有足夠的“作業系統”,僅需添加或減小鏡像即可。在一台伺服器上可以布署100~1000個Containers容器。

  便宜

  開源的,免費的,低成本的。由現代Linux核心支援並驅動。注* 輕量的Container必定可以在一個物理機上開啟更多“容器”,註定比VMs要便宜。

  生態系統

  正在越來越受歡迎,只需要看一看Google的趨勢就知道了, docker or LXC.

  還有不計其數的社區和第三方應用。

  雲支援

  不計其數的雲端服務提供建立和管理Linux容器架構。

  有關Docker效能方面的優勢,還可參考此IBM工程師對效能提升的評測,從各個方面比VMs(OS系統層級虛擬化)都有非常大的提升。

  Performance Characteristics of VMs vs Docker Containers by Boden Russel (IBM)

  Performance characteristics of traditional v ms vs docker containers

 有爭論的部分

  任何項目都會有爭論,就像Go,像NodeJS, 同樣Docker也有一些。

  能否徹底隔離

  在超複雜的業務系統中,單OS到底能不能實現徹底隔離,一個程式的崩潰/記憶體溢出/高CPU佔用到底會不會影響到其他容器或者整個系統?很多人對Docker能否在實際的多主機的生產環境中支援關鍵任務系統還有所懷疑。 注* 就像有人質疑Node.JS單線程快而不穩,無法在複雜情境中應用一樣。

  不過可喜的是,目前Linux核心已經針對Container做了很多改進,以支援更好的隔離。

  GO語言還沒有完全成熟

  Docker由Go語言開發,但GO語言對大多數開發人員來說比較陌生,而且還在不斷改進,距離成熟還有一段時間。此半git、半包管理的方式讓一些人產生不適。

  被私人公司控制

  Docker是一家叫Dotcloud的私人公司設計的,公司都是以營利為目的,比如你沒有辦法使用原始碼編繹Docker項目,只能使用黑匣子編出的Docker二進位發行包,未來可能不是完全免費的。 目前Docker已經推出面向公司的企業級服務(諮詢、支援和培訓)。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.