DocKer的核心技術(shù)與實(shí)現(xiàn)是怎樣的-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)DocKer的核心技術(shù)與實(shí)現(xiàn)是怎樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司專注于涼城企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站開發(fā)。涼城網(wǎng)站建設(shè)公司,為涼城等地區(qū)提供建站服務(wù)。全流程按需定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

到虛擬化技術(shù),我們首先想到的一定是Docker,經(jīng)過四年的快速發(fā)展Docker已經(jīng)成為了很多公司的標(biāo)配,也不再是一個(gè)只能在開發(fā)階段使用的玩具了。作為在生產(chǎn)環(huán)境中廣泛應(yīng)用的產(chǎn)品,Docker有著非常成熟的社區(qū)以及大量的使用者,代碼庫中的內(nèi)容也變得非常龐大。

同樣,由于項(xiàng)目的發(fā)展、功能的拆分以及各種奇怪的改名PR,讓我們?cè)俅卫斫釪ocker的的整體架構(gòu)變得更加困難。

雖然Docker目前的組件較多,并且實(shí)現(xiàn)也非常復(fù)雜,但是本文不想過多的介紹Docker具體的實(shí)現(xiàn)細(xì)節(jié),我們更想談一談Docker這種虛擬化技術(shù)的出現(xiàn)有哪些核心技術(shù)的支撐。

首先,Docker的出現(xiàn)一定是因?yàn)槟壳暗暮蠖嗽陂_發(fā)和運(yùn)維階段確實(shí)需要一種虛擬化技術(shù)解決開發(fā)環(huán)境和生產(chǎn)環(huán)境環(huán)境一致的問題,通過Docker我們可以將程序運(yùn)行的環(huán)境也納入到版本控制中,排除因?yàn)榄h(huán)境造成不同運(yùn)行結(jié)果的可能。但是上述需求雖然推動(dòng)了虛擬化技術(shù)的產(chǎn)生,但是如果沒有合適的底層技術(shù)支撐,那么我們?nèi)匀坏貌坏揭粋€(gè)完美的產(chǎn)品。本文剩下的內(nèi)容會(huì)介紹幾種Docker使用的核心技術(shù),如果我們了解它們的使用方法和原理,就能清楚Docker的實(shí)現(xiàn)原理。

Namespaces

命名空間(namespaces)是Linux為我們提供的用于分離進(jìn)程樹、網(wǎng)絡(luò)接口、掛載點(diǎn)以及進(jìn)程間通信等資源的方法。在日常使用Linux或者macOS時(shí),我們并沒有運(yùn)行多個(gè)完全分離的服務(wù)器的需要,但是如果我們?cè)诜?wù)器上啟動(dòng)了多個(gè)服務(wù),這些服務(wù)其實(shí)會(huì)相互影響的,每一個(gè)服務(wù)都能看到其他服務(wù)的進(jìn)程,也可以訪問宿主機(jī)器上的任意文件,這是很多時(shí)候我們都不愿意看到的,我們更希望運(yùn)行在同一臺(tái)機(jī)器上的不同服務(wù)能做到完全隔離,就像運(yùn)行在多臺(tái)不同的機(jī)器上一樣。

在這種情況下,一旦服務(wù)器上的某一個(gè)服務(wù)被入侵,那么入侵者就能夠訪問當(dāng)前機(jī)器上的所有服務(wù)和文件,這也是我們不想看到的,而Docker其實(shí)就通過Linux的Namespaces對(duì)不同的容器實(shí)現(xiàn)了隔離。

Linux的命名空間機(jī)制提供了以下七種不同的命名空間,包括CLONE_NEWCGROUP、CLONE_NEWIPC、CLONE_NEWNET、CLONE_NEWNS、CLONE_NEWPID、CLONE_NEWUSER和CLONE_NEWUTS,通過這七個(gè)選項(xiàng)我們能在創(chuàng)建新的進(jìn)程時(shí)設(shè)置新進(jìn)程應(yīng)該在哪些資源上與宿主機(jī)器進(jìn)行隔離。

進(jìn)程

進(jìn)程是Linux以及現(xiàn)在操作系統(tǒng)中非常重要的概念,它表示一個(gè)正在執(zhí)行的程序,也是在現(xiàn)代分時(shí)系統(tǒng)中的一個(gè)任務(wù)單元。在每一個(gè)*nix的操作系統(tǒng)上,我們都能夠通過ps命令打印出當(dāng)前操作系統(tǒng)中正在執(zhí)行的進(jìn)程。

當(dāng)前機(jī)器上有很多的進(jìn)程正在執(zhí)行,在上述進(jìn)程中有兩個(gè)非常特殊,一個(gè)是pid為1的/sbin/init進(jìn)程,另一個(gè)是pid為2的kthreadd進(jìn)程,這兩個(gè)進(jìn)程都是被Linux中的上帝進(jìn)程idle創(chuàng)建出來的,其中前者負(fù)責(zé)執(zhí)行內(nèi)核的一部分初始化工作和系統(tǒng)配置,也會(huì)創(chuàng)建一些類似getty的注冊(cè)進(jìn)程,而后者負(fù)責(zé)管理和調(diào)度其他的內(nèi)核進(jìn)程。

Docker通過Linux的命名空間實(shí)現(xiàn)了網(wǎng)絡(luò)的隔離,又通過iptables進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā),讓Docker容器能夠優(yōu)雅地為宿主機(jī)器或者其他容器提供服務(wù)。

上述就是小編為大家分享的DocKer的核心技術(shù)與實(shí)現(xiàn)是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站題目:DocKer的核心技術(shù)與實(shí)現(xiàn)是怎樣的-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://muchs.cn/article28/dhidjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)頁設(shè)計(jì)公司網(wǎng)站策劃、App設(shè)計(jì)、網(wǎng)站排名電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司