欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳細(xì)講解Docker虛擬化

 更新時(shí)間:2022年04月02日 11:44:07   作者:癡者工良  
本文詳細(xì)講解了Docker的虛擬化,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本章內(nèi)容將講解 Docker 虛擬化、虛擬化本質(zhì)、namespace、cgroups。

Docker 虛擬化

關(guān)于Docker

本小節(jié)將介紹 Docker 虛擬化的一些特點(diǎn)。

Docker 是一個(gè)開放源代碼軟件項(xiàng)目,自動(dòng)化進(jìn)行應(yīng)用程序容器化部署,借此在Linux操作系統(tǒng)上,提供一個(gè)額外的軟件抽象層,以及操作系統(tǒng)層虛擬化的自動(dòng)管理機(jī)制。 -From wiki

在接觸 Docker 的過程中,或多或少會(huì)了解到 Docker 的虛擬化,最常見的介紹方式是對比 Docker 和虛擬機(jī)之間的差別,筆者這里也給出兩者的對比表格,以便后面詳細(xì)地展開來講。

 虛擬機(jī)Docker 容器
隔離程度硬件級進(jìn)程隔離操作系統(tǒng)級進(jìn)程隔離
系統(tǒng)每個(gè)虛擬機(jī)都有一個(gè)單獨(dú)的操作系統(tǒng)每個(gè)容器可以共享操作系統(tǒng)(共享操作系統(tǒng)內(nèi)核)
啟動(dòng)時(shí)間需要幾分鐘幾秒
體積大小虛擬機(jī)鏡像GB級別容器是輕量級的(KB/MB)
啟動(dòng)鏡像虛擬機(jī)鏡像比較難找到預(yù)建的 docker 容器很容易獲得
遷移虛擬機(jī)可以輕松遷移到新主機(jī)容器被銷毀并重新創(chuàng)建而不是移動(dòng)
創(chuàng)建速度創(chuàng)建 VM 需要相對較長的時(shí)間可以在幾秒鐘內(nèi)創(chuàng)建容器
資源使用GB級別MB級別

Docker 中的虛擬化是依賴于 Windows 和 Linux 內(nèi)核的,在 Windows 上會(huì)要求開啟 Hyper-V,在 Linux 上需要依賴 namespace 和 cgroups 等,因此這里就不過多介紹 Docker 了,后面主要介紹 Linux 上的虛擬化技術(shù)。

傳統(tǒng)虛擬化部署方式

傳統(tǒng)虛擬化方式是在硬件抽象級別虛擬化,其特點(diǎn)是 虛擬化程度高。

傳統(tǒng)虛擬化方式的優(yōu)點(diǎn)是:

  • 1,虛擬機(jī)之間通過虛擬化技術(shù)隔離互不影響
  • 2,物理機(jī)上可部署多臺(tái)虛擬機(jī),提升資源利用率
  • 3,應(yīng)用資源分配、擴(kuò)容通過虛擬管理器直接可配置
  • 4,支持快照、虛擬機(jī)克隆多種技術(shù),快速部署、容災(zāi)減災(zāi)

傳統(tǒng)虛擬化部署方式的缺點(diǎn):

  • 1,資源占用高,需要額外的操作系統(tǒng)鏡像,需要占用GB級別的內(nèi)存以及數(shù)十GB存儲(chǔ)空間。
  • 2,啟動(dòng)速度慢,虛擬機(jī)啟動(dòng)需要先啟動(dòng)虛擬機(jī)內(nèi)操作系統(tǒng),然后才能啟動(dòng)應(yīng)用。
  • 3,性能影響大,應(yīng)用 => 虛擬機(jī)操作系統(tǒng)=> 物理機(jī)操作系統(tǒng)=> 硬件資源

Linux 虛擬化

本節(jié)簡單地講解 Docker 的實(shí)現(xiàn)原理,讀者可以從中了解 Linux 是如何隔離資源的、Docker 又是如何隔離的。

我們知道,操作系統(tǒng)是以一個(gè)進(jìn)程為單位進(jìn)行資源調(diào)度的,現(xiàn)代操作系統(tǒng)為進(jìn)程設(shè)置了資源邊界,每個(gè)進(jìn)程使用自己的內(nèi)存區(qū)域等,進(jìn)程之間不會(huì)出現(xiàn)內(nèi)存混用。Linux 內(nèi)核中,有 cgroups 和 namespaces 可以為進(jìn)程定義邊界,使得進(jìn)程彼此隔離。

Linux-Namespace

在容器中,當(dāng)我們使用 top 命令或 ps 命令查看機(jī)器的進(jìn)程時(shí),可以看到進(jìn)程的 Pid,每個(gè)進(jìn)程都有一個(gè) Pid,而機(jī)器的所有容器都具有一個(gè) Pid = 1 的基礎(chǔ),但是為什么不會(huì)發(fā)生沖突?容器中的進(jìn)程可以任意使用所有端口,而不同容器可以使用相同的端口,為什么不會(huì)發(fā)生沖突?這些都是資源可以設(shè)定邊界的表現(xiàn)。

在 Linux 中,namespace 是 Linux 內(nèi)核提供的一種資源隔離技術(shù),可以將系統(tǒng)中的網(wǎng)絡(luò)、進(jìn)程環(huán)境等進(jìn)行隔離,使得每個(gè) namespace 中的系統(tǒng)資源不再是全局性的。目前有以下 6 種資源隔離,Docker 也基本在這 6 種資源上對容器環(huán)境進(jìn)行隔離。

讀者可以稍微記憶一下這個(gè)表格,后面會(huì)使用到。

namespace系統(tǒng)調(diào)用參數(shù)隔離內(nèi)容
UTSCLONE_NEWUTS主機(jī)名和域名
IPCCLONE_NEWIPC信號(hào)量、消息隊(duì)列、共享內(nèi)存
PIDCLONE_NEWPID進(jìn)程編號(hào)
NetworkCLONE_NEWNET網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)棧、端口
MountCLONE_NEWNS文件系統(tǒng)掛載
UserCLONE_NEWUSER用戶和用戶組

[info] 關(guān)于 Mount

namespace 的 Mount 可以實(shí)現(xiàn)將子目錄掛載為根目錄。

unshare

Linux 中,unshare 命令行程序可以創(chuàng)建一個(gè) namespace,并且根據(jù)參數(shù)創(chuàng)建在 namespace 中隔離各種資源,在這里我們可以用使用這個(gè)工具簡單地創(chuàng)建一個(gè) namespace。

為了深刻理解 Linux 中的 namespace,我們可以在 Linux 中執(zhí)行:

unshare --pid /bin/sh

--pid僅隔離進(jìn)程。

這命令類似于docker run -it {image}:{tag} /bin/sh。當(dāng)我們執(zhí)行命令后,終端會(huì)進(jìn)入一個(gè) namespace 中,執(zhí)行 top 命令查看進(jìn)程列表。

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0  160188   8276   5488 S   0.0  0.4   9:35.58 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.08 kthreadd
    3 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 rcu_gp
    4 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 rcu_par_gp

可以看到,進(jìn)程 PID 是從 1 開始的,說明在這個(gè) namespace 中,與主機(jī)的進(jìn)程是隔離開來的。

這個(gè)命令中,只隔離了進(jìn)程,因?yàn)椴]有隔離網(wǎng)絡(luò),因此當(dāng)我們執(zhí)行netstat --tlap命令時(shí),這個(gè)命名空間的網(wǎng)絡(luò)跟其它命名空間的網(wǎng)絡(luò)是相通的。

在執(zhí)行 unshare 命令前,使用 pstree 命令查看進(jìn)程樹:

init─┬─2*[init───init───bash]
     ├─init───init───bash───pstree
     ├─init───init───fsnotifier-wsl
     ├─init───init───server───14*[{server}]
     └─2*[{init}]

為了方便比較,我們使用unshare --pid top創(chuàng)建一個(gè) namespace,對比執(zhí)行了 unshare 命令后:

$>  pstree -lha
init
  ├─init
  │   └─init
  │       └─bash
  │           └─sudo unshare --pid top
  │               └─top
  ├─init
  │   └─init
  │       └─bash
  │           └─pstree -lha
  ├─init
  │   └─init
  │       └─fsnotifier-wsl
  ├─init
  │   └─init
  │       └─bash
  ├─init
  │   └─init
  │       └─server --port 29687 --instance WSL-Ubuntu
  │           └─14*[{server}]
  └─2*[{init}]

而在 namespace 中,查看 top 顯示的內(nèi)容,發(fā)現(xiàn):

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  1 root      20   0    1904   1136   1020 S   0.0   0.0     0:08.38 init

通過進(jìn)程樹可以看到,不同 namespace 內(nèi)的進(jìn)程處于不同的樹支,他們的進(jìn)程 PID 也是相互獨(dú)立的。其功能類似于 Docker 中的 runc。

在 unshare 命令中,--pid 參數(shù)創(chuàng)建 隔離進(jìn)程的命名空間,此外,還可以隔離多種系統(tǒng)資源:

  • mount :命名空間具有獨(dú)立的掛載文件系統(tǒng);
  • ipc:Inter-Process Communication (進(jìn)程間通訊)命名空間,具有獨(dú)立的信號(hào)量、共享內(nèi)存等;
  • uts:命名空間具有獨(dú)立的 hostname 、domainname;
  • net:獨(dú)立的網(wǎng)絡(luò),例如每個(gè) docker 容器都有一個(gè)虛擬網(wǎng)卡;
  • pid:獨(dú)立的進(jìn)程空間,空間中的進(jìn)程 Pid 都從 1 開始;
  • user:命名空間中有獨(dú)立的用戶體系,例如 Docker 中的 root 跟主機(jī)的用戶不一樣;
  • cgroup:獨(dú)立的用戶分組;

Go 簡單實(shí)現(xiàn) 進(jìn)程隔離

在前面我們使用了 unshare 創(chuàng)建命名空間,在這里我們可以嘗試使用 Go 調(diào)用 Linux 內(nèi)核的 namespace,通過編程代碼創(chuàng)建隔離的資源空間。

Go 代碼示例如下:

package main

import (
	"log"
	"os"
	"os/exec"
	"syscall"
)

func main() {

	cmd := exec.Command("sh")
	cmd.SysProcAttr = &syscall.SysProcAttr{
		Cloneflags: syscall.CLONE_NEWUTS |
			syscall.CLONE_NEWIPC |
			syscall.CLONE_NEWNS |
			syscall.CLONE_NEWNET |
			syscall.CLONE_NEWPID |
			syscall.CLONE_NEWUSER,
	}
	cmd.Stdin = os.Stdin
	cmd.Stdout = os.Stdout
	cmd.Stderr = os.Stderr
	if err := cmd.Run(); err != nil {
		log.Fatalln(err)
	}
}

[info] 提示

前面已經(jīng)提到過 UTS 等資源隔離,讀者可以參考表格中的說明,對照代碼理解 Cloneflags 的作用。

在這個(gè)代碼中,我們啟動(dòng)了 Linux 中的 sh 命令,開啟一個(gè)新的進(jìn)程,這個(gè)進(jìn)程將會(huì)使用新的 IPC、PID 等隔離。

讀者可以在 Linux 中,執(zhí)行 go run main.go ,即可進(jìn)入新的命名空間。

關(guān)于 namespace 的介紹就到這里。

cgroups 硬件資源隔離

前面提到的 namepace 是邏輯形式使得進(jìn)程之間相互不可見,形成環(huán)境隔離,這跟 Docker 容器的日常使用是一樣的,隔離根目錄,隔離網(wǎng)絡(luò),隔離進(jìn)程 PID 等。

當(dāng)然,Docker 處理環(huán)境隔離外,還能限制每個(gè)容器使用的物理資源,如 CPU 、內(nèi)存等,這種硬件資源的限制是基于 Linux 內(nèi)核的 cgroups 的。

在 Docker 中限制容器能夠使用的資源量參數(shù)示例:

-m 4G --memory-swap 0 --cpu-period=1000000 --cpu-quota=8000000

cgroups 是 control groups 的縮寫,是 Linux 內(nèi)核提供的一種可以進(jìn)程所使用的物理資源的機(jī)制。

cgroups 可以控制多種資源,在 cgroups 中每種資源限制功能對應(yīng)一個(gè)子系統(tǒng),可以使用命令查看:

mount | grep cgroup

[info] 提示

每種子系統(tǒng)的功能概要如下:

  • blkio — 該子系統(tǒng)對進(jìn)出塊設(shè)備的輸入/輸出訪問設(shè)置限制,如 USB 等。
  • cpu — 該子系統(tǒng)使用調(diào)度程序來提供對 CPU 的 cgroup 任務(wù)訪問。
  • cpuacct — 該子系統(tǒng)生成有關(guān) cgroup 中任務(wù)使用的 CPU 資源的自動(dòng)報(bào)告。
  • cpuset — 該子系統(tǒng)將單個(gè) CPU和內(nèi)存節(jié)點(diǎn)分配給 cgroup 中的任務(wù)。
  • devices — 該子系統(tǒng)允許或拒絕 cgroup 中的任務(wù)訪問設(shè)備。
  • freezer — 該子系統(tǒng)在 cgroup 中掛起或恢復(fù)任務(wù)。
  • memory — 該子系統(tǒng)對 cgroup 中的任務(wù)使用的內(nèi)存設(shè)置限制,并生成有關(guān)自動(dòng)報(bào)告。
  • net_cls— 允許 Linux 流量控制器 ( tc) 識(shí)別源自特定 cgroup 任務(wù)的數(shù)據(jù)包。
  • net_prio — 該子系統(tǒng)提供了一種動(dòng)態(tài)設(shè)置每個(gè)網(wǎng)絡(luò)接口的網(wǎng)絡(luò)流量優(yōu)先級的方法。
  • ns—命名空間子系統(tǒng)。
  • perf_event — 該子系統(tǒng)識(shí)別任務(wù)的 cgroup 成員資格,可用于性能分析。

詳細(xì)內(nèi)容請參考:redhat 文檔

我們也可以使用 lssubsys 命令,查看內(nèi)核支持的子系統(tǒng)。

$> lssubsys -a
cpuset
cpu
cpuacct
blkio
memory
devices
freezer
net_cls
perf_event
net_prio
hugetlb
pids
rdma

[info] 提示

Ubuntu 可以使用 apt install cgroup-tools 安裝工具。

為了避免篇幅過大,讀者只需要知道 Docker 限制容器資源使用量、CPU 核數(shù)等操作,其原理是 Linux 內(nèi)核中的 cgroups 即可,筆者這里不再贅述。

聊聊虛擬化

本節(jié)內(nèi)容將從底層角度,聊聊虛擬化。

理論基礎(chǔ)

計(jì)算機(jī)層次結(jié)構(gòu)

從語言角度,一臺(tái)由軟硬件組成的通用計(jì)算機(jī)系統(tǒng)可以看作是按功能劃分的多層機(jī)器級組成的層次結(jié)構(gòu)。

如果從語言角度來看,計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)可用下圖所示。

我們平時(shí)使用的筆記本、安卓手機(jī)、平板電腦、Linux 服務(wù)器等,雖然不同機(jī)器的系統(tǒng)和部分硬件差異很大,但是其系統(tǒng)結(jié)構(gòu)是一致的。從 CPU 中晶體管、寄存器 到 CPU 指令集,再到操作系統(tǒng)、匯編,現(xiàn)在使用的通用計(jì)算機(jī)基本上這種結(jié)構(gòu)。

下面講解一下不同層次的主要特點(diǎn)。

計(jì)算機(jī)的最底層是硬聯(lián)邏輯級,由門電路,觸發(fā)器等邏輯電路組成,特征是使用極小的元件構(gòu)成,表示了計(jì)算機(jī)中的 0、1。

微程序是使用微指令編寫的,一個(gè)微程序即一個(gè)機(jī)器指令,一般直接由硬件執(zhí)行,它可以表示一個(gè)最簡單的操作。例如一個(gè)加法指令,由多個(gè)邏輯元件構(gòu)成一個(gè)加法器,其元件組成如下圖所示(圖中為一個(gè) 8 位全加器)。

傳統(tǒng)機(jī)器語言機(jī)器級是處理器的指令集所在,我們熟知的 X86、ARM、MIPS、RISC-V 等指令集,便是在這個(gè)層次。程序員使用指令集中的指令編寫的程序,由低一層微程序解釋。

操作系統(tǒng)機(jī)器層是從操作系統(tǒng)基本功能來看的,操作系統(tǒng)需要負(fù)責(zé)管理計(jì)算機(jī)中的軟硬件資源,如內(nèi)存、設(shè)備、文件等,它是軟硬件的交互界面。常用的操作系統(tǒng)有 Windows、Linux、Unix 等。這個(gè)層次使用的語言是機(jī)器語言,即 0、1 組成的二進(jìn)制代碼,能夠由計(jì)算機(jī)直接識(shí)別和執(zhí)行。

匯編語言機(jī)器層顧名思義是匯編語言所在的位置,匯編語言與處理器有關(guān),相同類型的處理器使用的匯編語言集是一致的。匯編語言需要被匯編語言程序變換為等效的二進(jìn)制代碼目標(biāo)程序。由于計(jì)算機(jī)中的資源被操作系統(tǒng)所管理,因此匯編語言需要在操作系統(tǒng)的控制下進(jìn)行。

到了高級語言機(jī)器層,便是我們使用的 C、C++ 等編程語言,高級語言是與人類思維相接近的語言。

軟硬件實(shí)現(xiàn)等效

計(jì)算機(jī)的某些功能即可以由硬件實(shí)現(xiàn),也可以由軟件來實(shí)現(xiàn)。即軟件和硬件在功能意義上是等效的。

一個(gè)功能使用硬件來實(shí)現(xiàn)還是使用軟件來實(shí)現(xiàn)?

硬件實(shí)現(xiàn):速度快、成本高;靈活性差、占用內(nèi)存少。

軟件實(shí)現(xiàn):速度低、復(fù)制費(fèi)用低;靈活性好、占用內(nèi)存多。

虛擬化技術(shù)是將原本 硬件實(shí)現(xiàn)的功能,使用軟件來實(shí)現(xiàn),它們在性能、價(jià)格、實(shí)現(xiàn)的難易程度是不同的。一個(gè)功能既可以使用硬件實(shí)現(xiàn),也可以使用軟件實(shí)現(xiàn),也可以兩者結(jié)合實(shí)現(xiàn),可能要根據(jù)各種人力成本、研發(fā)難度、研發(fā)周期等考慮。

虛擬化

虛擬化(技術(shù))或虛擬技術(shù)是一種資源管理技術(shù),將計(jì)算機(jī)的各種實(shí)體資源(CPU、內(nèi)存、磁盤空間、網(wǎng)絡(luò)適配器等),予以抽象、轉(zhuǎn)換后呈現(xiàn)出來并可供分割、組合為一個(gè)或多個(gè)計(jì)算機(jī)配置環(huán)境。

不同層次的虛擬化

我們應(yīng)該在很多書籍、文章中,了解到虛擬機(jī)跟 Docker 的比較,了解到 Docker 的優(yōu)點(diǎn),通過 Docker 打包鏡像后可以隨時(shí)在別的地方運(yùn)行而不需要擔(dān)心機(jī)器的兼容問題。但是 Docker 的虛擬化并不能讓 Linux 跑 Windows 容器,也不能讓 Windows 跑 Linux 容器,更不可能讓 x86 機(jī)器跑 arm 指令集的二進(jìn)制程序。但是 VMware 可以在 Windows 運(yùn)行 Linux 、Mac 的鏡像,但 WMWare 也不能由 MIPS 指令構(gòu)建的 Linux 系統(tǒng)。

Docker 和 VMware 都可以實(shí)現(xiàn)不同程度的虛擬化,但也不是隨心所欲的,它們虛擬化的程度相差很大,因?yàn)樗鼈兪窃诓煌瑢哟芜M(jìn)行虛擬化的。

[Info] 提示

許多虛擬化軟件不單單是在一個(gè)層面上,可能具有多種層次的虛擬化能力。

在指令集級別虛擬化中,從指令系統(tǒng)上看,就是要在一種機(jī)器上實(shí)現(xiàn)另一種機(jī)器的指令系統(tǒng)。例如,QEMU 可以實(shí)現(xiàn)在 X64 機(jī)器上模擬 ARM32/64、龍芯、MIPS 等處理器。

虛擬化程度在于使用硬件實(shí)現(xiàn)與軟件實(shí)現(xiàn)的比例,硬件部分比例越多一般來說性能就會(huì)越強(qiáng),軟件部分比例越多靈活性會(huì)更強(qiáng),但是性能會(huì)下降,不同層次的實(shí)現(xiàn)也會(huì)影響性能、兼容性等。隨著現(xiàn)在計(jì)算機(jī)性能越來越猛,很大程度上產(chǎn)生了性能過剩;加之硬件研發(fā)的難度越來越高,越來越難突破,非硬件程度的虛擬化將會(huì)越來越廣泛。

到此這篇關(guān)于Docker虛擬化的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Docker部署JSON Crack的流程步驟

    使用Docker部署JSON Crack的流程步驟

    本文將給大家詳細(xì)介紹了如何使用Docker部署JSON Crack,JSON Crack 是一款免費(fèi)的開源數(shù)據(jù)可視化應(yīng)用程序,能夠?qū)?nbsp;JSON、YAML、XML、CSV 等數(shù)據(jù)格式可視化為交互式圖表,文中通過代碼和圖片給大家講解的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • docker-compose安裝redis的方法步驟

    docker-compose安裝redis的方法步驟

    本文主要介紹了docker-compose安裝redis的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Docker容器 日志中文亂碼問題解決辦法

    Docker容器 日志中文亂碼問題解決辦法

    這篇文章主要介紹了Docker容器 日志中文亂碼問題解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Docker學(xué)習(xí)之Container容器的具體使用

    Docker學(xué)習(xí)之Container容器的具體使用

    這篇文章主要介紹了Docker學(xué)習(xí)之Container容器的具體使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06
  • 深入理解docker容器中的uid和gid

    深入理解docker容器中的uid和gid

    這篇文章主要介紹了深入理解docker容器中的uid和gid,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • docker start啟動(dòng)容器后仍然exit狀態(tài)的解決

    docker start啟動(dòng)容器后仍然exit狀態(tài)的解決

    這篇文章主要介紹了docker start啟動(dòng)容器后仍然exit狀態(tài)的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Docker容器修改端口映射的實(shí)現(xiàn)

    Docker容器修改端口映射的實(shí)現(xiàn)

    本文主要介紹了Docker容器修改端口映射的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Docker鏡像管理常用操作代碼示例

    Docker鏡像管理常用操作代碼示例

    這篇文章主要介紹了Docker鏡像管理常用操作代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Docker鏡像分層的原理詳解

    Docker鏡像分層的原理詳解

    這篇文章主要介紹了Docker鏡像分層的原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Docker核心原理之 Cgroup詳解

    Docker核心原理之 Cgroup詳解

    cgroup的內(nèi)核通過hook鉤子來實(shí)現(xiàn)管理進(jìn)程資源,提供了一個(gè)統(tǒng)一的接口,從單個(gè)進(jìn)程的資源控制到操作系統(tǒng)層面的虛擬卡的過渡,今天通過本文給大家介紹Docker核心原理之 Cgroup詳解,需要的朋友參考下吧
    2021-07-07

最新評論