docker概述與原理

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中。

謝謝劉磊為我們準備了這一系列的內容,非常贊!

Docker是一個開源的引擎,可以輕鬆而又快速的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎應用平臺。

1 Docker系統有兩個程序:服務端和客戶端

其中docker服務端是一個服務進程,管理著所有的容器。docker客戶端則扮演著docker服務端的遠程控制器,可以用來控制docker的服務端進程。大部分情況下,docker服務端和客戶端運行在一臺機器上。

2 Docker通常適用如下場景:

· web應用的自動化打包和發佈;

· 自動化測試和持續集成、發佈;

· 在服務型環境中部署和調整數據庫或其他的後臺應用;

· 從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。

3 查看docker版本

docker概述與原理

4 Dockr架構

docker概述與原理

Docker 採用 Client/Server 架構模式。Docker Daemon是docker的核心守護進程,也就是Server端,Server端可以部署在遠程,也可以部署在本地,客戶端向服務器發送請求,服務端負責構建、運行和分發容器。客戶端和服務器可以運行在同一個 Host 上,客戶端可以通過 socket 或 REST API 與遠程的服務器通信.

docker CLI 實現容器和鏡像的管理,為用戶提供統一的操作界面,這個 客戶端提供一個只讀的鏡像,然後通過鏡像可以創建一個或者多個容器(container),這些容器可以只是一個RFS(Root File System),也可以是一個包含了用戶應用的RFS。容器在docker Client中只是一個進程,兩個進程是互不可見的,從而實現容器之間的個隔離。

用戶不能與server直接交互,但可以通過與容器這個橋樑來交互,由於是操作系統級別的虛擬技術,中間的損耗幾乎可以不計。

docker概述與原理

5 docker容器和虛擬化實現原理

docker概述與原理

左圖是虛擬機的工作原理圖,著重體現在硬件層面進行虛擬化,實現對硬件資源進行抽象,對性能的損耗比較大,而且還會佔用大量的內存資源

有圖是Docker的工作原理圖,屬於OS級別的虛擬化,kernel通過創建多個鏡像來隔離不同的app進程,由於kernel是是共享,本身linux image也不大,性能損耗幾乎可以不計,而且內存佔用也不大,大大節約了設備成本


分享到:


相關文章: