中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

DocKer的核心技術與實現是怎樣的

發布時間:2021-10-14 17:12:35 來源:億速云 閱讀:161 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關DocKer的核心技術與實現是怎樣的,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

  到虛擬化技術,我們首先想到的一定是Docker,經過四年的快速發展Docker已經成為了很多公司的標配,也不再是一個只能在開發階段使用的玩具了。作為在生產環境中廣泛應用的產品,Docker有著非常成熟的社區以及大量的使用者,代碼庫中的內容也變得非常龐大。

  同樣,由于項目的發展、功能的拆分以及各種奇怪的改名PR,讓我們再次理解Docker的的整體架構變得更加困難。

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

  首先,Docker的出現一定是因為目前的后端在開發和運維階段確實需要一種虛擬化技術解決開發環境和生產環境環境一致的問題,通過Docker我們可以將程序運行的環境也納入到版本控制中,排除因為環境造成不同運行結果的可能。但是上述需求雖然推動了虛擬化技術的產生,但是如果沒有合適的底層技術支撐,那么我們仍然得不到一個完美的產品。本文剩下的內容會介紹幾種Docker使用的核心技術,如果我們了解它們的使用方法和原理,就能清楚Docker的實現原理。

Namespaces

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

  在這種情況下,一旦服務器上的某一個服務被入侵,那么入侵者就能夠訪問當前機器上的所有服務和文件,這也是我們不想看到的,而Docker其實就通過Linux的Namespaces對不同的容器實現了隔離。

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

進程

  進程是Linux以及現在操作系統中非常重要的概念,它表示一個正在執行的程序,也是在現代分時系統中的一個任務單元。在每一個*nix的操作系統上,我們都能夠通過ps命令打印出當前操作系統中正在執行的進程。

  當前機器上有很多的進程正在執行,在上述進程中有兩個非常特殊,一個是pid為1的/sbin/init進程,另一個是pid為2的kthreadd進程,這兩個進程都是被Linux中的上帝進程idle創建出來的,其中前者負責執行內核的一部分初始化工作和系統配置,也會創建一些類似getty的注冊進程,而后者負責管理和調度其他的內核進程。

  Docker通過Linux的命名空間實現了網絡的隔離,又通過iptables進行數據包轉發,讓Docker容器能夠優雅地為宿主機器或者其他容器提供服務。

上述就是小編為大家分享的DocKer的核心技術與實現是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泰来县| 福贡县| 建平县| 通海县| 克拉玛依市| 安图县| 调兵山市| 六安市| 綦江县| 和静县| 和田县| 淮滨县| 惠安县| 化德县| 高州市| 塔河县| 江川县| 孟村| 高淳县| 肇庆市| 庄浪县| 西城区| 定襄县| 周口市| 丹巴县| 津南区| 武邑县| 谷城县| 胶南市| 织金县| 毕节市| 慈利县| 石首市| 大丰市| 宣化县| 阿克陶县| 廉江市| 济南市| 大兴区| 巴楚县| 临武县|