docker的架構介紹及部署實戰
一.docker架構分析
如下圖所示,docker採用的是 client/server 架構。客戶端向伺服器傳送請求,伺服器負責構建、執行和分發容器。客戶端和伺服器可以執行在同乙個 host 上,客戶端也可以通過socket或 rest api與遠端的伺服器通訊。
docker客戶端,最常用的docker客戶端是docker命令。通過docker我們可以方便地在host上構建和執行容器。2>.docker-hostdocker支援很多操作(docker命令列工具),使用者也可以通過rest api與伺服器通訊。
client和docker daemon通訊可使用https/http協議進行通訊,為了安全起見,預設使用的就是https協議。
docker daemon:3>.registrydocker 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等等。在後續的文章我們會逐一對其進行講解。
我們去構建映象時,映象做好之後應該有乙個統一存放位置,我們稱之為docker倉庫,registry是存放docker映象的倉庫(官方預設倉庫在"二.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提供了乙個完成使用者認證等功能的檢索介面。
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...