docker整體架構描述

2021-07-25 16:03:30 字數 1004 閱讀 7023

關於docker,上個學期就一直在學,去實習之後更覺其重要性,所以讀了一段時間原始碼,總結並記錄一下,權當加深印象。

閱讀原始碼首先腦海裡要有一張原始碼地圖,要明白docker各個部分實現了哪些功能。

docker的架構圖如下:

總體包含七個部分:client,daemon,driver,libcontainer,container,graph,registry。

外表來看,docker是乙個c/s的架構,使用者可以在客戶端輸入各種指令,客戶端負責接受請求並作出相應的響應返回給客戶。

dockerclient 負責接受並傳遞請求指令 。

dockerdaemon的功能主要有兩個:

負責接受client的請求

管理docker容器

dockerdaemon的架構主要可以分為兩部分:dockerserver和engine

dockerserver

dockerserver作為服務端最主要的作用就是配合client端將請求指令接受過來,如圖所示,dockerserver主要分為三個部分:http.server,mux.server,handler。

dockerserver執行時會從乙個名為mux的包中建立乙個mux.router路由器,然後為路由器中新增相關的路由項用於路由資訊, 每個路由項由http請求方法(get,post,put,delete)+url+handler三部分組成。

dockerserver每收到乙個請求就會生成乙個goroutine然後進行相應的解析、匹配相應的路由項最後會找到相匹配的handler來處理,handler處理玩請求之後給dockerclient返回響應。

dockerdriver是docker內部的驅動模組,負責容器內部相關網路、檔案系統等的構建

libcontainer主要是對linux核心的一些諸如namespace、cgroups、capabilities等特性做了封裝

Android App整體架構

本文是對我在知乎乙個回答的整理,其中的內容大多是對我平時的閱讀和實踐的總結,希望對android的開發者有所幫助。但畢竟是個人的一些思考,難免有疏漏,也歡迎對本文的內容提出建議。模型層 model 中的整體 量是最大的,一般由大量的package組成,針對這部分需要做的就是在程式設計的過程中,做好模...

spring 整體架構

1.core container 核心容器 core 包含spring框架的核心工具類 beans 包含訪問配置檔案 建立和管理bean 以及進行ioc di 相關操作的所有類 context 整合beans為spring框架提供大量的擴充套件 expression language 提供表示式語言...

索引整體架構

lucene將索引文件的過程設計成兩個階段,寫入記憶體階段和寫入硬碟階段。在寫入記憶體階段,lucene通過indexchain把document分解並把相關資訊儲存到記憶體中,等到滿足flush條件 記憶體容量或者文件個數積累到臨界值 就通過indexchain把記憶體中的資料寫入硬碟。index...