官术网_书友最值得收藏!

第3章 啟動(dòng)Docker Daemon

3.1 引言

自Docker誕生以來(lái),便引領(lǐng)了輕量級(jí)虛擬化容器領(lǐng)域的技術(shù)熱潮。在這一潮流下,Google、IBM、Redhat等業(yè)界翹楚紛紛加入Docker陣營(yíng)。雖然目前Docker仍主要基于Linux平臺(tái),但是Microsoft卻多次宣布對(duì)Docker的支持,從先前宣布的Azure支持Docker與Kubernetes,到如今宣布的下一代Windows Server原生態(tài)支持Docker。Microsoft的這一系列舉措多少喻示著向Linux世界的妥協(xié),當(dāng)然這也不得不讓世人對(duì)Docker的巨大影響力有重新的認(rèn)識(shí)。

Docker的影響力不言而喻,但如果需要深入學(xué)習(xí)Docker的內(nèi)部實(shí)現(xiàn),最重要的就是理解Docker Daemon。在Docker架構(gòu)中,Docker Client通過特定的協(xié)議與Docker Daemon進(jìn)行通信,而Docker Daemon主要承載了Docker運(yùn)行過程中的大部分工作。

Docker Daemon是Docker架構(gòu)中運(yùn)行在后臺(tái)的守護(hù)進(jìn)程,大致可以分為Docker Server、Engine和Job三部分。三者的關(guān)系大致如下:Docker Daemon通過Docker Server模塊接收Docker Client的請(qǐng)求,并在Engine中處理請(qǐng)求,然后根據(jù)請(qǐng)求類型,創(chuàng)建出指定的Job并運(yùn)行。由于用戶的請(qǐng)求不同,DockerDaemon會(huì)創(chuàng)建不同的Job來(lái)完成任務(wù),如:用戶發(fā)起鏡像下載請(qǐng)求,DockerDaemon創(chuàng)建名為“pull”的Job;用戶發(fā)起啟動(dòng)容器的請(qǐng)求,DockerDaemon創(chuàng)建名為“start”的Job……

Docker Daemon的架構(gòu)如圖3-1所示。

本章從源碼的角度,主要分析Docker Daemon的啟動(dòng)流程。由于Docker Daemon和Docker Client的啟動(dòng)流程有很多的相似之處,故本章不再贅述Docker Daemon啟動(dòng)的前期工作、flag參數(shù)的解析等內(nèi)容,著重分析Docker Daemon啟動(dòng)流程中最為重要的環(huán)節(jié):創(chuàng)建Daemon過程中mainDaemon()的實(shí)現(xiàn)。

圖3-1 DockerDaemon架構(gòu)示意圖

主站蜘蛛池模板: 绥江县| 石阡县| 安阳县| 洞口县| 玛纳斯县| 如皋市| 都江堰市| 藁城市| 唐海县| 巨鹿县| 府谷县| 昌宁县| 通渭县| 绿春县| 开封市| 丹江口市| 繁峙县| 深圳市| 枝江市| 珲春市| 雷波县| 灵寿县| 阳西县| 万山特区| 岳西县| 河源市| 铜梁县| 旬阳县| 白玉县| 濮阳市| 通化县| 南开区| 阳朔县| 诸城市| 巴彦淖尔市| 方山县| 武平县| 横峰县| 南岸区| 托克托县| 东平县|