Docker的架構介紹及部署實戰

2022-07-09 03:03:08 字數 2587 閱讀 7104

docker的架構介紹及部署實戰

一.docker架構分析

如下圖所示,docker採用的是 client/server 架構。客戶端向伺服器傳送請求,伺服器負責構建、執行和分發容器。

客戶端和伺服器可以執行在同乙個 host 上,客戶端也可以通過socket或 rest api與遠端的伺服器通訊。

docker客戶端,最常用的docker客戶端是docker命令。通過docker我們可以方便地在host上構建和執行容器。

docker支援很多操作(docker命令列工具),使用者也可以通過rest api與伺服器通訊。

client和docker daemon通訊可使用https/http協議進行通訊,為了安全起見,預設使用的就是https協議。

2>.docker-host

docker daemon:  

docker daemon是伺服器元件,即docker守護程序伺服器,以linux後台服務的方式執行。

docker daemon執行在docker host上,負責建立、執行、監控容器,構建、儲存映象。預設配置下,docker daemon只能響應來自本地host的客戶端請求。如果要允許遠端客戶端請求,需要在配置檔案中開啟tcp監聽(支援ipv4和ipv6)。

containers:   

docker容器,用於載入docker映象。換句話說,docker容器就是docker映象的執行例項。我們知道映象(image)是唯讀的,在啟動乙個container時,其實就是基於image來新建乙個專用的可寫倉供使用者使用。

image:   

可將docker映象看成唯讀模板(它類似於虛擬機器使用的iso映象檔案),通過它可以建立docker容器。例如某個映象可能包含乙個ubuntu作業系統、乙個apache http server以及使用者開發的web應用。

映象有多種生成方法:

(1)可以從無到有開始建立映象;

(2      (

3)還可以在現有映象上建立新的映象

(4)我們可以將映象的內容和建立步驟描述在乙個文字檔案中,這個檔案被稱作dockerfile,通過執行docker build 命令可以構建出docker映象。

公開的映象倉庫有很多種,如下所示:

生產環境中,我們通常在公司內部部署有私有映象倉庫。如使用harbor,docker registry等等。在後續的文章我們會逐一對其進行講解。

3>.registry

我們去構建映象時,映象做好之後應該有乙個統一存放位置,我們稱之為docker倉庫,registry是存放docker映象的倉庫(官方預設倉庫在"

"),registry分私有和公有兩種。

images和registry之間預設使用的時https協議,當然如果你非要指定為http協議也是可以的。

registry用於儲存docker映象,包括映象的層次結構和元資料。使用者可自建registry,也可使用官方的docker hub。  

docker registry中的映象通常由開發人員製作,而後推送至"公共

"或"私有

"registry上儲存,供其它人員使用,例如"部署"

到生產環境。

docker registry可分為以下幾類:    

sponsor registry:

第三方的registry,供客戶端和docker社群使用。    

mirror registry:

第三方的registry,只讓客戶使用。    

vendor registry:

由發布docker映象的**商提供的registry。    

private registry:

通過設有防火牆和額外的安全層的私有實體提供的registry。  

registry包括repository和index,詳細說明如下:    

repository:      

由某特定的docker映象的所有迭代版本組成的映象倉庫;

乙個registry中可以存在多個repository:        

repository可分為

"頂層倉庫

"和"使用者倉庫

";        

使用者倉庫名稱格式為

"使用者名稱/倉庫名

"。      

每個倉庫可以包含多個tag(標籤),每個標籤對應乙個映象;    

index:      

維護使用者賬戶,映象的校驗以及公共命名空間的資訊;      

相當於為registry提供了乙個完成使用者認證等功能的檢索介面。

二.docker環境部署實戰三.

Elastic Elastic部署架構介紹

elastic stack是一套完整的從資料採集,解析,分析,豐富,到搜尋,檢索,資料程式等一套完整的軟體棧。在具體的實踐中,我們應該如何搭建我們的系統呢?下圖描述了常用的elastic stack的部署架構 該圖描述了三種可能的體系結構 也有一些應用場景是這樣部署的 同樣的,在這裡,我們可以通過r...

Docker簡介及部署

docker簡介及部署 docker簡介 docker 是乙個開源的應用容器引擎,而乙個容器containers其實是乙個虛擬化的獨立的環境,讓開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的 linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任...

Portainer介紹及部署

一 介紹 查詢當前有哪些portainer映象 三 單機版執行 如果僅有乙個docker宿主機,則可使用單機版執行,portainer單機版執行十分簡單,只需要一條語句即可啟動容器,來管理該機器上的docker映象 容器等資料。docker run d p 9000 9000 restart alw...