docker 是乙個開放源**的軟體專案,讓應用程式部署在作業系統上的工作可以自動化進行。如下圖docker架構所示,docker軟體平台包含客戶端,守護程序,倉庫,映象和容器五個實體。當使用者使用docker build命令時,客戶端先獲取dockerfile的真實路徑,然後根據使用者設定的引數傳送請求給守護程序,守護程序根據請求配置環境並構建映象;當使用者使用docker pull命令時,客戶端先檢查映象的分層標籤和認證,然後設定請求引數並傳送給守護程序,後者從映象倉庫中拉取映象;當使用者使用docker run命令時,客戶端傳送容器啟動請求給守護程序,守護程序解析客戶端傳送的請求,根據容器映象名稱冷啟動容器並執行容器應用。
客戶端提供使用者與守護程序互動的介面。當使用者使用docker run等命令時,客戶端會將命令傳送到守護程序, 守護程序將執行容器的啟動,客戶端可以與多個守護程序通訊。守護程序監聽docker api請求和管理docker軟體平台中的物件,比如容器,映象,儲存和網路等。docker採用c/s架構,即客戶端和守護程序伺服器,二者均由go語言實現。客戶端與守護程序可部署在同一主機上,也可部署在不同主機上。
倉庫用於儲存容器映象。倉庫分為私有倉庫和公有倉庫,全球最大的公有倉庫是docker hub,預設情況下docker連線的倉庫是docker hub,也可以配置成私有倉庫。當使用者執行docker pull命令時,被請求的映象會從配置的倉庫中拉取下來;當使用者執行docker push命令時,使用者構建的映象將被推送到倉庫中備份。
映象是乙個唯讀的模版,描述建立容器的指令。映象分為基礎映象和自定義映象,自定義映象是在基礎映象上做的修改,如圖2.2所示,使用者可以在基礎映象debian上增加emacs編輯器軟體和apache伺服器軟體構建自定義映象。映象**分為兩種:其一,使用者編寫dockerfile說明構建不同映象層次的指令,然後利用docker build構建自定義映象;其二,使用者可從公有倉庫中拉取已存在的映象到本地。容器是映象的乙個執行例項,當執行容器應用時,只需要在唯讀的映象最外層新增一層可寫層,記錄容器執行時的更新狀態,甚至利用容器的狀態也可以構建新的映象。
docker docker架構詳述
docker 使用客戶端 伺服器 c s 架構模式,使用遠端api來管理和建立docker容器。docker 容器通過 docker 映象來建立。容器與映象的關係類似於物件導向程式設計中的物件與類。docker 物件導向 容器物件映象類 docker 映象 images docker 映象是用於建立...
Android架構簡析
mvp架構及開發模式 mvc or mvp pattern whats the difference?android中的mvp 譯 android開發中的mvp架構 首先,讓我們思考下為什麼在android開發中如此迫切地需要乙個清晰的架構。該段摘自 大全第二版 避免建立神類。避免建立無所不知,無所...
HBase架構簡談
作者的思考,建議結合 hbase權威指南 第8章一起看。1.hbase是如何保證快速讀取 以支援實時資料開發的 相比hive和hadoop的批處理 hbase在hdfs上磁碟資料結構為lsm 可以看成b樹 按rowkey有序,複雜度為log n 當然與樹節點元素數量有關 可以理解為對rowkey進行...