Docker 核心技術

2022-10-08 17:45:23 字數 2226 閱讀 5270

介紹

linux namespace 是一種 linux kernel 提供的資源隔離方案:

linux 核心**中 namespace 的實現

linux 對 namespace 操作方法

namespace 的隔離性

namespace 型別

隔離資源

kernel 版本

ipcsystem v ipc 和 posix 訊息佇列

2.6.19

network

網路裝置、網路協議棧、網路埠等

2.6.29

pid程序

2.6.14

mount

掛載點2.4.19

uts主機名和網域名稱

2.6.19

usr使用者和使用者組

namespace 常用操作介紹

linux 核心**中 cgroups 的實現

cgroup 可限制和度量的資源

資源說明

blkio

這個子系統設定限制每個塊裝置的輸入輸出控制。例如:磁碟,光碟以及 usb 等等。

cpu這個子系統使用排程程式為 cgroup 任務提供 cpu 的訪問。

cpuacct

產生 cgroup 任務的 cpu 資源報告

cpuset

如果是多核心的 cpu,這個子系統會為 cgroup 任務分配單獨的 cpu 和記憶體。

devices

允許或拒絕 cgroup 任務對裝置的訪問。

freezer

設定每個 cgroup 的記憶體限制以及產生記憶體資源報告。

memory

設定每個 cgroup 的記憶體限制以及產生記憶體資源報告。

net_cls

標記每個網路包以供 cgroup 方便使用。

ns命名空間子系統。

pid程序標識子系統。

cpu 子系統

cpuacct 子系統

memory 子系統

介紹docker 初始化時,是將 rootfs 以 readonly 方式載入並檢查,再通過 union mount 的方式,將 readwrite 檔案系統掛在到 rootfs 之上。且允許不斷往上疊加,並將下層的 fs 設定為 readonly。

這樣一組 readonly 和 writeable 的結構,構成了 docker container 的執行時。

寫操作docker 的映象具有共享的特性(映象是一層一層的,底層的 readonly 映象對於多個容器而言是共享的)。

用時分配

docker 守護程序 是由 systemd 建立的,containerd 是由守護程序建立的;

但是 docker 容器程序由 docker shim(墊片,由 systemd 建立) 建立的,以避免 containerd 帶掛一堆下面的程序;

預設模式

Docker核心技術

執行在同樣的主機上,docker容器共用乙個container,而虛擬機器則使用自己的作業系統上的container,虛擬機器之間擁有比docker更好的隔離性,但docker相對於虛擬機器來說有更多的優勢,比如虛擬機器作業系統的存在額外占用了更多的計算資源,其次,從空間占用上,虛擬機器基本都是gb...

Docker核心技術

一 docker基礎 一處封裝構建,到處執行 跨平台跨伺服器。1.解決了執行環境和配置問題軟體容器,方便做持續整合並有助於整體發布的容器虛擬化技術。二 docker三要素 1.倉庫 集中存放映象的場所。docker hub 2.映象 乙個唯讀的模板。3.容器 獨立執行的乙個或一組應用,映象的例項。4...

Docker 2 核心技術

2.1.1 docker映象 2.1.2 映象與容器 2.1.3 映象通常較小 2.1.4 映象拉取和映象倉庫 2.1.5 映象命名和標籤 2.1.6 映象與分層 2.1.7 共享映象層 2.1.8 映象雜湊值 摘要 2.2.1 docker容器 2.2.2 容器vs虛擬機器 2.2.3 虛擬機器的...