日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺談Docker引擎

Docker 引擎是用來運(yùn)行和管理容器的核心軟件。通常人們會(huì)簡(jiǎn)單地將其代指為 Docker 或 Docker 平臺(tái)。

公司主營(yíng)業(yè)務(wù):網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出茅箭免費(fèi)做網(wǎng)站回饋大家。

docker 引擎

基于開放容器計(jì)劃(OCI)相關(guān)標(biāo)準(zhǔn)的要求,Docker引擎采用了模塊化的設(shè)計(jì)原則,其組件是可替換的。

Docker 引擎由如下主要的組件構(gòu)成: Docker 客戶端( Docker Client )、Docker 守護(hù)進(jìn)程( Docker daemon )、containerd 以及runc。它們共同負(fù)責(zé)容器的創(chuàng)建和運(yùn)行。

runc

runc實(shí)質(zhì)上是一個(gè)輕量級(jí)的、針對(duì)Libcontainer進(jìn)行了包裝的命令行交互工具( Libcontainer取代了早期Docker架構(gòu)中的LXC )。

runc生來只有一個(gè)作用一創(chuàng)建容器,速度很快!不過它是一個(gè)CLI 包裝器,實(shí)質(zhì)上就是一個(gè)獨(dú)立的容器運(yùn)行時(shí)工具。因此直接下載它或基于源碼編譯二進(jìn)制文件,即可擁有一個(gè)全功能的runc。 但它只是一個(gè)基礎(chǔ)工具,并不提供類似Docker引擎所擁有的豐富功能。 有時(shí)也將runc所在的那一層稱為“OCI 層”

containerd

在對(duì)Docker daemon的功能進(jìn)行拆解后,所有的容器執(zhí)行邏輯被重構(gòu)到一個(gè)新的名為containerd (發(fā)音為container-dee) 的工具中。它的主要任務(wù)是容器的生命周期管理———— start | stop | pause | rm….

containerd在Linux和Windows中以daemon的方式運(yùn)行

Docker引擎技術(shù)棧中,containerd位于daemon和runc所在的OCI層之間

隨著時(shí)間的推移,它被賦予了更多的功能,如鏡像管理

常用的啟動(dòng)容器的方法就是使用Docker命令行工具。下面的docker container run命令會(huì)基于alpine:latest鏡像啟動(dòng)一個(gè)新容器。

$ docker container run --name ctrl -it alpine:latest sh

當(dāng)使用Docker命令行工具執(zhí)行如上命令時(shí),Docker客戶端會(huì)將其轉(zhuǎn)換為合適的API格式,并發(fā)送到正確的API端點(diǎn)。

API是在daemon中實(shí)現(xiàn)的。這套功能豐富、基于版本的REST API已經(jīng)成為Docker的標(biāo)志。

一旦daemon接收到創(chuàng)建新容器的命令,它就會(huì)向containerd發(fā)出調(diào)用。daemon已經(jīng)不再包含任何創(chuàng)建容器的代碼了!

daemon使用一種CRUD風(fēng)格的API,通過gRPC與containerd進(jìn)行通信。雖然名叫containerd, 但是它并不負(fù)責(zé)創(chuàng)建容器,而是指揮runc去做。

containerd將Docker鏡像轉(zhuǎn)換為OCI bundle,并讓runc基于此創(chuàng)建一個(gè)新的容器。

然后,runc與操作系統(tǒng)內(nèi)核接口進(jìn)行通信,基于所有必要的工具( Namespace、CGroup 等)來創(chuàng)建容器。容器進(jìn)程作為runc的子進(jìn)程啟動(dòng),啟動(dòng)完畢后,runc 將會(huì)退出。

將所有的用于啟動(dòng)、管理容器的邏輯和代碼從daemon中移除,意味著容器運(yùn)行時(shí)與Docker daemon是解耦的,有時(shí)稱之為“無守護(hù)進(jìn)程的容器(daemonless container)”,如此,對(duì)Docker daemon的維護(hù)和升級(jí)工作不會(huì)影響到運(yùn)行中的容器。

shim

shim是實(shí)現(xiàn)無daemon的容器(用于將運(yùn)行中的容器與daemon解耦,以便進(jìn)行daemon升級(jí)等操作)不可或缺的工具。

containerd 指揮runc來創(chuàng)建新容器。事實(shí)上,每次創(chuàng)建容器時(shí)它都會(huì)fork一個(gè)新的runc實(shí)例。不過,一旦容器創(chuàng)建完畢,對(duì)應(yīng)的runc進(jìn)程就會(huì)退出。因此,即使運(yùn)行上百個(gè)容器,也無須保持上百個(gè)運(yùn)行中的runc實(shí)例。

一旦容器進(jìn)程的父進(jìn)程runc退出,相關(guān)聯(lián)的containerd-shim 進(jìn)程就會(huì)成為容器的父進(jìn)程。

作為容器的父進(jìn)程,shim 的部分職責(zé)如下。

  • 保持所有STDIN和STDOUT流是開啟狀態(tài),從而當(dāng)daemon重啟的時(shí)候,容器不會(huì)因?yàn)楣艿? pipe)的關(guān)閉而終止。
  • 將容器的退出狀態(tài)反饋給daemon。

daemon的作用

daemon的主要功能包括鏡像管理、鏡像構(gòu)建、REST API、身份驗(yàn)證、安全、核心網(wǎng)絡(luò)以及編排。


當(dāng)前名稱:淺談Docker引擎
文章分享:http://www.dlmjj.cn/article/dhpidhp.html