亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

說(shuō)透 Docker:虛擬化

luffyZh / 963人閱讀

摘要:本章內(nèi)容將講解虛擬化虛擬化本質(zhì)。在中限制容器能夠使用的資源量參數(shù)示例是的縮寫(xiě),是內(nèi)核提供的一種可以進(jìn)程所使用的物理資源的機(jī)制。

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

Docker 虛擬化

關(guān)于Docker

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

?

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

docker_logo

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

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

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

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

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

![traditional_kvm ](./images/traditional_kvm .jpg)

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

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

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

1, 資源占用高,需要額外的操作系統(tǒng)鏡像,需要占用GB級(jí)別的內(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é)簡(jiǎn)單地講解 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 種資源上對(duì)容器環(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用戶(hù)和用戶(hù)組

[info] 關(guān)于 Mount

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

unshare

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

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

unshare --pid /bin/sh  

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

這命令類(lèi)似于?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 開(kāi)始的,說(shuō)明在這個(gè) namespace 中,與主機(jī)的進(jìn)程是隔離開(kāi)來(lái)的。

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

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

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,對(duì)比執(zhí)行了 unshare 命令后:

$>  pstree -lhainit  ├─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

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

由于筆者對(duì) Linux 了解不深,這部分內(nèi)容就不深入探究了。

在?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 開(kāi)始;
  • user:命名空間中有獨(dú)立的用戶(hù)體系,例如 Docker 中的 root 跟主機(jī)的用戶(hù)不一樣;
  • cgroup:獨(dú)立的用戶(hù)分組;

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

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

Go 代碼示例如下:

package mainimport (	"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)提到過(guò) UTS 等資源隔離,讀者可以參考表格中的說(shuō)明,對(duì)照代碼理解 Cloneflags 的作用。

代碼示例參考 陳顯鷺《自己動(dòng)手寫(xiě) Docker》一書(shū)。

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

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

image-20211027213531037

限于個(gè)人水平和篇幅有限,關(guān)于 namespace 的介紹就到這里。

cgroups 硬件資源隔離

前面提到的 namepace 是邏輯形式使得進(jìn)程之間相互不可見(jià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 的縮寫(xiě),是 Linux 內(nèi)核提供的一種可以進(jìn)程所使用的物理資源的機(jī)制。

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

mount | grep cgroup

cgroups

[info] 提示

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

  • blkio?— 該子系統(tǒng)對(duì)進(jìn)出塊設(shè)備的輸入/輸出訪(fǎng)問(wèn)設(shè)置限制,如 USB 等。
  • cpu?— 該子系統(tǒng)使用調(diào)度程序來(lái)提供對(duì) CPU 的 cgroup 任務(wù)訪(fǎng)問(wèn)。
  • 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ù)訪(fǎng)問(wèn)設(shè)備。
  • freezer?— 該子系統(tǒng)在 cgroup 中掛起或恢復(fù)任務(wù)。
  • memory?— 該子系統(tǒng)對(duì) 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ò)流量?jī)?yōu)先級(jí)的方法。
  • ns命名空間子系統(tǒng)。
  • perf_event?— 該子系統(tǒng)識(shí)別任務(wù)的 cgroup 成員資格,可用于性能分析。

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

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

$> lssubsys -acpusetcpucpuacctblkiomemorydevicesfreezernet_clsperf_eventnet_priohugetlbpidsrdma

[info] 提示

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

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

聊聊虛擬化

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

理論基礎(chǔ)

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

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

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

?

?

【圖來(lái)源:《計(jì)算機(jī)組成原理》天勤考研 1.2.5 計(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)邏輯級(jí),由門(mén)電路,觸發(fā)器等邏輯電路組成,特征是使用極小的元件構(gòu)成,表示了計(jì)算機(jī)中的 0、1。

m1

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

m1

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

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

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

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

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

?

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

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

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

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

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

虛擬化

?

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

不同層次的虛擬化

我們應(yīng)該在很多書(shū)籍、文章中,了解到虛擬機(jī)跟 Docker 的比較,了解到 Docker 的優(yōu)點(diǎn),通過(guò) Docker 打包鏡像后可以隨時(shí)在別的地方運(yùn)行而不需要擔(dān)心機(jī)器的兼容問(wèn)題。但是 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)行虛擬化的。

virstual

[Info] 提示

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

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

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

一個(gè)逗逗的大學(xué)生

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

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

相關(guān)文章

  • PHP面試:常見(jiàn)查找算法一篇說(shuō)透

    摘要:我們現(xiàn)在來(lái)看二分搜索算法的兩種變形插值搜索和指數(shù)搜索。插值搜索是對(duì)二分搜索算法的改進(jìn),插值搜索可以基于搜索的值選擇到達(dá)不同的位置。 預(yù)警 在本篇文章中,將為各位老鐵介紹不同的搜索算法以及它們的復(fù)雜度。因?yàn)榱η笸ㄋ滓锥?,所以篇幅可能較長(zhǎng),大伙可以先Mark下來(lái),每天抽時(shí)間看一點(diǎn)理解一點(diǎn)。本文配套的Github Repo,歡迎各位老鐵star,會(huì)一直更新的。 開(kāi)篇 和排序類(lèi)似,搜索或者叫做...

    付永剛 評(píng)論0 收藏0
  • 各平臺(tái)安裝和使用Docker的差異

    摘要:在上運(yùn)行使用系統(tǒng)要求開(kāi)啟虛擬化的硬件支持可以通過(guò)命令來(lái)檢查或者更高版本至少內(nèi)存安裝最新點(diǎn)擊下載安裝下載的文件安裝完成后,啟動(dòng)使用鏡像加速地址使用自帶的使用的系統(tǒng)要求運(yùn)行或者以上版本支持硬件虛擬化技術(shù)并且已啟用虛擬化安裝點(diǎn)擊下載運(yùn)行在上運(yùn)行使 在Mac上運(yùn)行Docker 使用Docker for Mac 系統(tǒng)要求 開(kāi)啟虛擬化的硬件支持,可以通過(guò)命令來(lái)檢查:sysctl kern.hv_...

    Thanatos 評(píng)論0 收藏0
  • Docker學(xué)習(xí)(一)docker的相關(guān)概念

    摘要:虛擬化就是表示計(jì)算機(jī)資源的一種抽象方式,它是一系列虛擬技術(shù)的集合,如硬件虛擬化技術(shù),處理器虛擬化技術(shù),指令虛擬化技術(shù),軟件虛擬化技術(shù)等。對(duì)于計(jì)算機(jī)領(lǐng)域,虛擬化技術(shù)主要分為兩類(lèi),一類(lèi)是硬件虛擬化,一類(lèi)是軟件虛擬化,容器技術(shù)屬于軟件虛擬化。 容器技術(shù)并不是什么新概念,只不過(guò)最近幾年隨著云計(jì)算的火熱,變得被大家所熟知。最早于1979年誕生的chroot技術(shù),容器技術(shù)又稱(chēng)為容器虛擬化。 虛擬化...

    用戶(hù)83 評(píng)論0 收藏0
  • Docker學(xué)習(xí)(一)docker的相關(guān)概念

    摘要:虛擬化就是表示計(jì)算機(jī)資源的一種抽象方式,它是一系列虛擬技術(shù)的集合,如硬件虛擬化技術(shù),處理器虛擬化技術(shù),指令虛擬化技術(shù),軟件虛擬化技術(shù)等。對(duì)于計(jì)算機(jī)領(lǐng)域,虛擬化技術(shù)主要分為兩類(lèi),一類(lèi)是硬件虛擬化,一類(lèi)是軟件虛擬化,容器技術(shù)屬于軟件虛擬化。 容器技術(shù)并不是什么新概念,只不過(guò)最近幾年隨著云計(jì)算的火熱,變得被大家所熟知。最早于1979年誕生的chroot技術(shù),容器技術(shù)又稱(chēng)為容器虛擬化。 虛擬化...

    chenatu 評(píng)論0 收藏0
  • Docker學(xué)習(xí)與和應(yīng)用(一)_初步認(rèn)識(shí)

    摘要:分別進(jìn)行配置和測(cè)試。也就是說(shuō)對(duì)于開(kāi)發(fā)和部署來(lái)說(shuō),使用可以更快速的交付和部署應(yīng)用環(huán)境。更便捷的應(yīng)用更新管理。使用鏡像創(chuàng)建并啟動(dòng)一個(gè)容器。執(zhí)行用戶(hù)指定的應(yīng)用程序。執(zhí)行完畢后,容器被終止。 Docker是為應(yīng)用的開(kāi)發(fā)和部署提供的一站式容器解決方案,它能幫助開(kāi)發(fā)者高效快速的構(gòu)建應(yīng)用,實(shí)現(xiàn)Build,Ship and Run Any App, Anywhere,從而達(dá)到一次構(gòu)建,到處運(yùn)行的目的。...

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

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

0條評(píng)論

閱讀需要支付1元查看
<