成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Docker 架構(gòu) - 基于 1.2 版本

kaka / 3098人閱讀

摘要:標(biāo)簽空格分隔架構(gòu)注該文作者是,原文地址注該文是由一篇翻譯而來(lái)。資源限制組可以被設(shè)置不超過(guò)一組內(nèi)存限制這也包括文件系統(tǒng)。優(yōu)先級(jí)一些組可能獲得更大的分配和磁盤吞吐量記錄為了測(cè)量某些系統(tǒng)使用了多少資源控制凍結(jié)組或檢查點(diǎn)和重起。

標(biāo)簽(空格分隔): Docker 架構(gòu) Architecture CGroups Namespaces aufs vfs devmapper container


  

注:該文作者是 rajdeep,原文地址 Docker Architecture (v1.2)

  

注:該文是由一篇 slide 翻譯而來(lái)。

在開(kāi)始之前,我們需要了解

什么是容器?

一組進(jìn)程包含在隔離的環(huán)境

通過(guò)類似 cgroups 和 namespaces 的概念提供隔離

什么是 Docker?

使用鏡像的概念實(shí)現(xiàn)一個(gè)輕便的容器

鏡像是輕便且可發(fā)布的

CGroups

限制、記錄(account)和隔離一組進(jìn)程的資源使用(CPU,內(nèi)存,磁盤 I/O,等等。)

資源限制:組可以被設(shè)置不超過(guò)一組內(nèi)存限制 - 這也包括文件系統(tǒng) cache。

優(yōu)先級(jí):一些組可能獲得更大的 CPU 分配和磁盤 I/O 吞吐量

記錄(account):為了測(cè)量某些系統(tǒng)使用了多少資源

控制:凍結(jié)組或檢查點(diǎn)和重起。

Namespace

分區(qū)必不可少的內(nèi)核結(jié)構(gòu)來(lái)創(chuàng)建虛擬環(huán)境

不同的 Namespaces

pid(進(jìn)程)

net(網(wǎng)絡(luò)接口,路由。。。)

ipc(System V IPC)

mnt(掛載點(diǎn),文件系統(tǒng))

uts(hostname)

user(UIDs)

Docker

管理鏡像和運(yùn)行期容器

后端支持多樣的文件系統(tǒng)

多個(gè) Execdriver 容器實(shí)現(xiàn)

客戶端和服務(wù)器端組件 - 使用 HTTP 和 unix sockets 配合

Docker 運(yùn)行期組件

Docker 引擎

Docker 核心:容器存儲(chǔ)

使用任務(wù)管理容器(類似 unix 的任務(wù))

容器處理封裝了任務(wù)的函數(shù)

所有的動(dòng)作使用任務(wù)執(zhí)行

Docker 初始化

Docker 的主函數(shù):docker.main()

調(diào)用:mainDaemon()

實(shí)例化引擎:eng := engine.New()

內(nèi)部注冊(cè):built--‐ins builtsin.Register(eng)

實(shí)例化任務(wù):job := eng.Job(“initserver”)

為任務(wù)設(shè)置變量

運(yùn)行任務(wù): job.run()

啟動(dòng)接受的連接:eng.Job(“AcceptConnections”).run()

內(nèi)部注冊(cè):

nstantiate daemon(eng) 
eng.Register("initserver", server.InitServer) 
eng.Register(“init_networkdriver”, bridge.InitDriver)
  

注:感覺(jué)作者這里凌亂了,處女座受不了啊。見(jiàn)圖


Daemon

主入口點(diǎn)管理容器的所有請(qǐng)求

維護(hù)以下引用的數(shù)據(jù)結(jié)構(gòu):

ImageGraph

Volume Graph

Engine

ExecDriver

Server

ContainerStore

Daemon - Graph

Graph 是一個(gè)存儲(chǔ)系統(tǒng)文件版本和鏡像關(guān)系的數(shù)據(jù)結(jié)構(gòu)

為每一個(gè)容器實(shí)例化一個(gè) Graph

引用一個(gè) graphdriver.Driver

在一個(gè) Graph 上的動(dòng)作:

創(chuàng)建一個(gè)新的 Graph

從一個(gè) Graph 中獲取鏡像

恢復(fù)一個(gè) Graph

創(chuàng)建一個(gè)鏡像并且注冊(cè)進(jìn) Graph

在 Graph 上注冊(cè)一個(gè)預(yù)先存在的鏡像

在 Docker 中鏡像和容器的概念

Docker 鏡像是文件系統(tǒng)中的一層

容器是兩層:

層一是基于鏡像的初始化層

層二是實(shí)際的容器內(nèi)容

Graph Driver

被 Daemon 引用

用于抽象多種后端存儲(chǔ)

加載以下后端文件系統(tǒng):

aufs

Device mapper(devmapper)

vfs

btrfs

容器存儲(chǔ)

持久化后端的容器數(shù)據(jù)

使用 SQLite 實(shí)現(xiàn)

從 Daemon 引用

containGraph:graph

在 Daemon 恢復(fù)期間用于加載容器信息

Volume Graph

基于 Graph 的簡(jiǎn)單 vfs,為了與容器卷保持聯(lián)系

Volumes 使用在 Daemon 中的卷驅(qū)動(dòng)器來(lái)創(chuàng)建和連接容器的卷

每個(gè)容器被分配一個(gè)或多個(gè)卷

ExecDriver

對(duì)底層 Linux 控制的抽象

從 daemon 調(diào)用

支持以下實(shí)現(xiàn)

LXC

Native

驅(qū)動(dòng)接口

抽象接口與底層實(shí)現(xiàn)交互

驅(qū)動(dòng)接口 - 網(wǎng)絡(luò)

抽象接口與底層實(shí)現(xiàn)交互

libcontainer

容器的底層原生實(shí)現(xiàn)

被原生的驅(qū)動(dòng)使用

Container.config - 一個(gè)容器數(shù)據(jù)的表示

包裝過(guò)的 cgroups 和 Namespaces

原生的驅(qū)動(dòng)實(shí)現(xiàn)

創(chuàng)建容器的步驟

Engine --‐> Daemon --‐> ContainerCreate

ContainerCrea

2.1 檢查定義在配置文件中的內(nèi)存是比 512k 大還是系統(tǒng)定義的限制小
2.2 檢查 SwapLimit
2.3 調(diào)用 Daemon --‐> Create

  2.3.1 daemon.repositories.LookupImage --‐> tagStore.getImage()
  2.3.2 daemon.newContainer() 
      2.3.2.1 NewContainerMonitor()
  2.3.3 daemon.createRootFs()
      2.3.3.1 daemon.container.driver.Create()[Graph Driver --‐ aufs, btrfs, devicemapper]
      2.3.3.2 container.ToDisk()//持久化容器

總結(jié)

Linux 控制原則

Docker 架構(gòu)組件

原生的驅(qū)動(dòng)實(shí)現(xiàn)

libcontainer

容器創(chuàng)建

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26334.html

相關(guān)文章

  • Rainbond 5.1.5發(fā)布,企業(yè)應(yīng)用市場(chǎng)遠(yuǎn)程一鍵安裝

    摘要:年月日,發(fā)布版本,本次版本更新帶來(lái)了全新的應(yīng)用市場(chǎng)交付體驗(yàn),并對(duì)源碼類服務(wù)的運(yùn)行機(jī)制架構(gòu)服務(wù)管理等方面做了大量?jī)?yōu)化。發(fā)布社區(qū)公開(kāi)應(yīng)用。我們正在進(jìn)行的是將應(yīng)用轉(zhuǎn)化為應(yīng)用存放于應(yīng)用市場(chǎng)中供用戶直接安裝使用。 2019年7月8日,Rainbond發(fā)布5.1.5版本,本次版本更新帶來(lái)了全新的應(yīng)用市場(chǎng)交付Pipeline體驗(yàn),并對(duì)源碼類服務(wù)的運(yùn)行機(jī)制、ServiceMesh架構(gòu)、服務(wù)管理等方面做...

    Aomine 評(píng)論0 收藏0
  • Rainbond v5.1.2發(fā)布,微服務(wù)架構(gòu)應(yīng)用便捷管理和交付

    摘要:發(fā)布,微服務(wù)架構(gòu)應(yīng)用便捷管理和交付是開(kāi)源的企業(yè)應(yīng)用云操作系統(tǒng),支撐企業(yè)應(yīng)用的開(kāi)發(fā)架構(gòu)交付和運(yùn)維的全流程,通過(guò)無(wú)侵入架構(gòu),無(wú)縫銜接各類企業(yè)應(yīng)用,底層資源可以對(duì)接和管理虛擬機(jī)和物理服務(wù)器。 Rainbond v5.1.2發(fā)布,微服務(wù)架構(gòu)應(yīng)用便捷管理和交付 Rainbond是開(kāi)源的企業(yè)應(yīng)用云操作系統(tǒng),支撐企業(yè)應(yīng)用的開(kāi)發(fā)、架構(gòu)、交付和運(yùn)維的全流程,通過(guò)無(wú)侵入架構(gòu),無(wú)縫銜接各類企業(yè)應(yīng)用,底層資源...

    miguel.jiang 評(píng)論0 收藏0
  • Rainbond v5.1.2發(fā)布,微服務(wù)架構(gòu)應(yīng)用便捷管理和交付

    摘要:發(fā)布,微服務(wù)架構(gòu)應(yīng)用便捷管理和交付是開(kāi)源的企業(yè)應(yīng)用云操作系統(tǒng),支撐企業(yè)應(yīng)用的開(kāi)發(fā)架構(gòu)交付和運(yùn)維的全流程,通過(guò)無(wú)侵入架構(gòu),無(wú)縫銜接各類企業(yè)應(yīng)用,底層資源可以對(duì)接和管理虛擬機(jī)和物理服務(wù)器。 Rainbond v5.1.2發(fā)布,微服務(wù)架構(gòu)應(yīng)用便捷管理和交付 Rainbond是開(kāi)源的企業(yè)應(yīng)用云操作系統(tǒng),支撐企業(yè)應(yīng)用的開(kāi)發(fā)、架構(gòu)、交付和運(yùn)維的全流程,通過(guò)無(wú)侵入架構(gòu),無(wú)縫銜接各類企業(yè)應(yīng)用,底層資源...

    AdolphLWQ 評(píng)論0 收藏0
  • Rainbond v5.1.2發(fā)布,微服務(wù)架構(gòu)應(yīng)用便捷管理和交付

    摘要:發(fā)布,微服務(wù)架構(gòu)應(yīng)用便捷管理和交付是開(kāi)源的企業(yè)應(yīng)用云操作系統(tǒng),支撐企業(yè)應(yīng)用的開(kāi)發(fā)架構(gòu)交付和運(yùn)維的全流程,通過(guò)無(wú)侵入架構(gòu),無(wú)縫銜接各類企業(yè)應(yīng)用,底層資源可以對(duì)接和管理虛擬機(jī)和物理服務(wù)器。 Rainbond v5.1.2發(fā)布,微服務(wù)架構(gòu)應(yīng)用便捷管理和交付 Rainbond是開(kāi)源的企業(yè)應(yīng)用云操作系統(tǒng),支撐企業(yè)應(yīng)用的開(kāi)發(fā)、架構(gòu)、交付和運(yùn)維的全流程,通過(guò)無(wú)侵入架構(gòu),無(wú)縫銜接各類企業(yè)應(yīng)用,底層資源...

    hzc 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<