日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

了解最常用的開發技術之一背后的基礎組件和系統的基礎

Docker架構概述

Image source: Docker Logos and Photos

如果您最近來到了一個美好的容器世界,或者您已經來過一段時間,那么了解可以協同工作以提供Docker巨大好處的基礎系統和元素可能不是一個壞主意。

了解基礎

鏡像還是容器?

首先是第一件事。 具有基本術語的明確知識從未傷害任何人。 鏡像和容器似乎是等效的術語-它們不是同一回事嗎? 我的意思是,我都使用它們將我的應用程序投放到某些服務器,PaaS或其他任何服務器上。

好,是的,但實際上沒有

可以根據軟件開發將容器描述為鏡像實例。 該語句有一些含義:

· 可以從同一鏡像中生成無限數量的容器。

· 鏡像內部的資源將出現在其所有生成的容器中。 哪種資源? 任何:文件,服務,二進制文件,cron作業等。

· 刪除容器后,其所有內容都將丟失。 稍后,我們將學習如何處理數據持久性。

實際的鏡像容器差異

我們了解到,容器就是某種鏡像實例。 了解基本區別就足夠了。 但是要提高我們的Docker技能,我們需要更深入地了解鏡像概念。

鏡像是一疊圖層。 那是一層呢? 一層是相對于上一層的一組差異。 Dockerfile是定義如何構建鏡像的文件。 該文件中的每條指令代表鏡像的一層。 層被緩存以更快地構建鏡像,因此良好的Dockerfile實現確實可以使構建時間和鏡像大小有所不同。

Docker架構概述

Image layers as explained by docs.docker.com

這是真正的交易。 生成容器時,我們將獲取鏡像的圖層堆棧,并在頂部(容器層)上生成一個可寫層。 容器生命周期中生成的所有更改都將寫入此層。 因此,刪除容器時,容器層數據將丟失。

Docker架構概述

Multiple containers from the same image, docs.docker.com

Docker架構101

Docker引擎

您是否嘗試安裝Docker? 您可能已經注意到,不僅需要安裝Docker,還需要安裝dockerd。

那是因為Docker是一個客戶端服務器應用程序。 您必須同時擁有這兩個部分才能在計算機上運行Docker應用程序。 此客戶端-服務器串聯稱為docker引擎。

docker客戶端只是一個CLI工具,用于針對REST API發出請求,該REST API負責與docker守護程序或dockerd進行交互。 dockerd將處理操作系統以確保容器的正確行為。

Docker架構概述

Docker engine as explained by docs.docker.com

 

等等,您是否說了有關客戶端服務器的內容? 這是否意味著我可以向遠程Docker守護程序拋出請求? 好了,您現在可能已經意識到諸如Kubernetes,OpenShift和Docker Swarm之類的編排服務是如何工作的。

大圖景

現在我們對Docker的主要元素有了清晰的了解,它們如何協同工作?

每當在Docker客戶端中創建請求時,該請求都會發送到Docker守護程序,它將執行所需的操作。

讓我們以運行redis容器為例。 我們通過運行docker run redis指令來實現這一點。

Docker架構概述

Docker architecture, docs.docker.com

首先,我們的計算機將向已配置的Docker主機API發出請求,該API將與Docker守護程序進行交互。

至此,守護程序知道其必須執行的操作。 它將在主機注冊表上查找redis鏡像。 如果不存在,則會進行一次新查找,這次將針對已配置的鏡像注冊表(Docker Hub,ECR,ACR,GCR等)進行搜索并提?。ㄏ螺d)。 然后,它將基于下載的生成一個容器。

 

其他主要Docker零件

持久性問題

如果由于某種原因,我們的postgres容器崩潰了,并且無法再次啟動,則我們可能需要移除該容器并運行另一個容器。 但是,如前所述,容器層數據將丟失,我們不想丟失所有數據,是嗎?

為持久性問題提供的兩個解決方案是卷和綁定安裝。 通過這兩者,我們可以將正在運行的容器的文件系統持久保存到主機中。

一方面,卷將數據存儲在主機中,只有dockerd可以修改此文件系統。 這是通常存儲數據的首選方式。

另一方面,使用綁定安裝,我們不僅可以將目錄安裝到容器中,還可以將具體文件安裝到容器中。 另外,綁定安裝允許安裝任何主機目錄或文件。 這意味著我們可以從主機將數據插入到容器中。 對于配置文件而言,這是巨大的。

Docker架構概述

Different data storage provided by Docker, docs.docker.com

第三種數據掛載模式tmps,在linux主機中使用,用于持久存儲我們不想在容器層或主機文件系統中寫入的數據(例如密鑰)。 此數據保留在主機內存中。

為什么我的容器無法ping通google?

也許您想在與世界隔絕的計算機中運行驚人的Web應用程序。 但是,這并不是Docker的主要用例,因此網絡在編排Docker容器時起著重要的作用。

Docker提供了將不同類型的網絡驅動程序附加到運行中的容器的可能性,從而實現了容器與另一個容器,Docker主機和/或Internet之間的連接。

Docker架構概述

Example of a bridge network provided by docs.docker.com

由于容器本身并不需要真正的網絡知識,因此我們將在本主題中另辟piece徑。

 

去玩吧!

現在,您應該對不同的Docker資源如何協同工作有一個更清晰的認識。 您現在應該至少能夠理解"容器世界"中討論的大多數概念的表面。

我邀請您進行自己的研究,以更深入地研究這些主題,并構建和部署您的容器化應用。 這里有一些想法:

· 嘗試不同的卷/網絡模式。

· 測試層緩存與無緩存的構建時間。

· 嘗試多步驟構建。

· 沉迷于出色的docker-compose。

 

(本文翻譯自Víctor Suárez Fernández的文章《An Overview of Docker Architecture》,參考:https://medium.com/better-programming/an-overview-to-docker-architecture-15407c482c52)

分享到:
標簽:架構 Docker
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定