什麼是Docker?

什麼是Docker?


Docker允許我們打包我們的應用以及其所有的依賴包到一個標準化單元中用於軟件開發。

Docker容器將一塊應用打包到一個完整的文件系統中,在該文件系統中包含了該應用要運行的所有要求:代碼,運行時,系統工具,系統庫 - 任何你安裝在服務器上的東西。這就能保證他將會以同樣的方式運行,無論它運行在什麼樣的環境中。

這裏寫圖片描述

Docker的特點


  • 輕量
    運行在單一機器上的容器共享相同的操作系統內核,所以他們能立即啓動,並且更有效率的使用RAM。圖片是由分層文件系統構建的,所以他們能夠共享公用文件,使磁盤使用和圖片下載更有效率。
  • 開放性
    Docker容器基於開源的標準,這使得容器能夠運行在一些主流的Linux發行版上和支持每個基礎設施的微軟操作系統上。
  • 安全性
    容器隔離每一個應用和底層的基礎設施,並且爲應用提供一個保護層。

Docker和虛擬機有什麼不同?


容器擁有與虛擬機相同的資源分離和分配的有點,但是一些不同的架構方法使得容器更加輕型和有效率。

這裏寫圖片描述
虛擬機

每一個虛擬機包含應用,必要的二進制和庫,以及一個完整的用戶操作系統 - 每一個虛擬機可能需要10Gb的大小。

這裏寫圖片描述
容器

容器包含應用和其所有的依賴包,但是與其他容器共享內核。他們在宿主操作系統中,在用戶空間以分離的進程運行。他們也不與任何特定的基礎設施綁定 - Docker容器運行在任何計算機,任何設備和任何雲中。

容器怎麼幫助我們構建更好的軟件?


當我們的app在Docker容器中的時候,我們不需要擔心爲每一種語言設置和維持不同的環境或不同的工具。我們只需專注於創建新的也行,修復問題和交付軟件。
  • 加快開發速度
    減少設置開發環境浪費的時間,分拆新實例,並且複製產品代碼用於本地運行。使用Docker,我們可以非常簡單的複製生存環境並且運行任何新的運行着Docker的端點。
  • 增強創造力
    Docker容器的隔離能力消除了使用”認可的”語言棧和工具的擔心。開發者可以使用最好的語言和工具用於他們的應用服務,而不必擔心導致衝突。
  • 消除開發的不一致性
    通過打包應用以及他的配置和依賴包,並且作爲一個容器交付,應用會一直按照本地設計工作,無論是在其他應用中,在測試中還是在產品中。不用再擔心安裝相同的配置到一個不同的環境中。

分享簡單,並且應用協作


這裏寫圖片描述

Docker創建一個用於開發和系統管理的通用框架,用於在分佈式應用中工作。

發佈和共享內容

在Docker hub中你的團隊存儲,發佈並且管理你的Docker鏡像。鏡像更新,改變和歷史被自動通過你的組織共享。

更簡單的與其他人分享您的應用

向其他人或下游的團隊交付一個或多個容器,而補習擔心不同的環境依賴導致的問題。其他團隊可以非常簡單的連接或測試你的app,而不用學習或擔心他是如何工作的。

更快的交付更多的軟件

這裏寫圖片描述

Docker允許你動態的修改你的應用,例如添加新的功能,擴展服務來快速改變問題區域。

交付7X多

Docker用戶在他們的環境中部署了Docker之後,平均交付7X多的軟件。更頻繁的更新向您的消費者提供了更多的價值。

快速擴展

Docker容器能夠在秒級別內加速或減慢,這使得其在任何時間擴展應用服務來滿足用戶需求變得更加簡單,然後僅僅簡單的減慢這些容器滿足,當你需要資源的時候才使用這些資源。

修復問題更加簡單

Docker使得識別問題並且分離問題容器變得更加簡單,快速的回滾使其發生必要的修改,然後更新的容器到產品中。容器之間的隔離相比傳統的軟件模型使得這些改變有更少的破壞性。

現在我們就可以專注於構建app了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章