幾周前我們參加了dockercon
,dockercon是首個以docker為中心的技術大會。它面向開發者以及對在docker開放平台上構建、交付、執行分布式應用感興趣的從業者,不論這些開放平台是執行於自用筆記本上或者是資料中心的虛擬機器上。我們參加了這次大會,flux7是docker基礎的系統整合合作夥伴,同時也是演講嘉賓。
我們的ceo aater suleman和我們的一位客戶一同進行了演講。雖然dockercon大會十分有趣,但我覺得大會太關注docker的具體細節,而忽略了docker的使用場景。所以,在這篇文章中,我想介紹並分享一些docker的實際應用案例。
在我們討論docker的使用場景之前,先來看看docker這個工具有什麼特別的地方吧。
docker提供了輕量級的虛擬化,它幾乎沒有任何額外開銷,這個特性非常酷。
首先你在享有docker帶來的虛擬化能力的時候無需擔心它帶來的額外開銷。其次,相比於虛擬機器,你可以在同一臺機器上建立更多數量的容器。
docker的另外乙個優點是容器的啟動與停止都能在幾秒中內完成。docker公司的創始人 solomon hykes曾經介紹過docker在單純的lxc之上做了哪些事情,你可以去看看。
下面是我總結的一些docker的使用場景,它為你展示了如何借助docker的優勢,在低開銷的情況下,打造乙個一致性的環境。
這是docker公司宣傳的docker的主要使用場景。虛擬機器的最大好處是能在你的硬體設施上執行各種配置不一樣的平台(軟體、系統),docker在降低額外開銷的情況下提供了同樣的功能。它能讓你將執行環境和配置放在**中然後部署,同乙個docker的配置可以在不同的環境中使用,這樣就降低了硬體要求和應用環境之間耦合度。
前乙個場景對於管理**的流水線起到了很大的幫助。**從開發者的機器到最終在生產環境上的部署,需要經過很多的中間環境。而每乙個中間環境都有自己微小的差別,docker給應用提供了乙個從開發到上線均一致的環境,讓**的流水線變得簡單不少。
這就帶來了一些額外的好處:docker能提公升開發者的開發效率。如果你想看乙個詳細一點的例子,可以參考aater在devopsdays austin 2014 大會或者是dockercon上的演講。
不同的開發環境中,我們都想把兩件事做好。一是我們想讓開發環境盡量貼近生產環境,二是我們想快速搭建開發環境。
理想狀態中,要達到第乙個目標,我們需要將每乙個服務都跑在獨立的虛擬機器中以便監控生產環境中服務的執行狀態。然而,我們卻不想每次都需要網路連線,每次重新編譯的時候遠端連線上去特別麻煩。這就是docker做的特別好的地方,開發環境的機器通常記憶體比較小,之前使用虛擬的時候,我們經常需要為開發環境的機器加記憶體,而現在docker可以輕易的讓幾十個服務在docker中跑起來。
正如通過虛擬機器來整合多個應用,docker隔離應用的能力使得docker可以整合多個伺服器以降低成本。由於沒有多個作業系統的記憶體占用,以及能在多個例項之間共享沒有使用的記憶體,docker可以比虛擬機器提供更好的伺服器整合解決方案。
docker提供了很多的工具,這些工具不一定只是針對容器,但是卻適用於容器。它們提供了很多的功能,包括可以為容器設定檢查點、設定版本和檢視兩個容器之間的差別,這些特性可以幫助除錯bug。你可以在《docker拯救世界》的文章中找到這一點的例證。
另外乙個docker有意思的使用場景是在多租戶的應用中,它可以避免關鍵應用的重寫。我們乙個特別的關於這個場景的例子是為iot(譯者注:物聯網)的應用開發乙個快速、易用的多租戶環境。這種多租戶的基本**非常複雜,很難處理,重新規劃這樣乙個應用不但消耗時間,也浪費金錢。
使用docker,可以為每乙個租戶的應用層的多個例項建立隔離的環境,這不僅簡單而且成本低廉,當然這一切得益於docker環境的啟動速度和其高效的diff
命令。
你可以在這裡了解關於此場景的更多資訊。
在虛擬機器之前,引入新的硬體資源需要消耗幾天的時間。虛擬化技術(virtualization)將這個時間縮短到了分鐘級別。而docker通過為程序僅僅建立乙個容器而無需啟動乙個作業系統,再次將這個過程縮短到了秒級。這正是google和facebook都看重的特性。
你可以在資料中心建立銷毀資源而無需擔心重新啟動帶來的開銷。通常資料中心的資源利用率只有30%,通過使用docker並進行有效的資源分配可以提高資源的利用率。vsa
八個Docker的真實應用場景
在這篇文章中,作者介紹並分享了一些docker的實際應用案例。通過這些docker的使用場景,我們可以了解如何有力地借助docker,在非常低的額外開銷的情況下,打造一致性的環境。在這篇文章中,我想介紹並分享一些docker的實際應用案例。在我們討論docker的使用場景之前,先來看看docker這...
Docker的應用場景
docker是開發人員和系統管理員構建,發布和執行分布式應用程式的開放平台,可以在膝上型電腦 資料中心 虛擬機器還有雲伺服器上執行。下面將介紹使用docker工具來提高生產率的10種方法。你需要在本地系統上快速試用 magento 嗎?或者在專案中使用mysql?或者大多數的開源專案,那麼請使用do...
docker的應用場景
1.簡化配置 虛擬機器的最大好處是能在你的硬體設施上執行各種配置不一樣的平台 軟體,系統 docker在降低額外開銷的情況下提供了同樣的功能.它能讓你將執行環境和配置放在 彙總然後部署,同乙個docker的配置可以在不同的環境環境中使用,這樣就降低了硬體要求和應用環境之間耦合度.2.流水線管理 從開...