docker容器原理探究第一篇:unix隔離技術

docker介紹

docker是一種基於輕量級虛擬化思想的一種容器實現。相較於傳統的虛擬化技術,容器提供的是一種按需所取的容器化思想。他不是從真實的物理機虛擬化出整個宿主機,而是藉助unix命名空間隔離和cgroup技術實現的輕量級虛擬化容器。容器本質上一個或者多個進程,但是相較於直接運行在真實物理機上的進程不同,我們在物理機上啓動的每一個容器,都喲是相互獨立,相互隔離的。有着自己的命名空間,有着自己的文件系統,網絡資源等,在容器的視角下,好像佔有了整個操作系統,並且和其他的容器(進程)相互獨立。

image-20231025235725230

上圖揭示了容器虛擬化和傳統虛擬機機制的不同,傳統的虛擬機是在真實物理機之上完全虛擬出一整個虛擬機,然後我們的應用再運行在之上。但是docker容器僅僅提供一層很薄的資源視圖隔離和資源控制機制,在這之上模擬出獨立的操作系統。

操作系統包含了多種資源,我們爲了針對進程進行資源視圖視圖隔離,就需要針對不同的資源採用不同的隔離方法。我們可以大致將操作系統針對進程提供的資源分爲三種,獨立於進程的資源:例如文件系統,和進程綁定的資源:例如pid繼承關係,命名空間等,以及其他特殊資源。接下來就分別基於這三種資源隔離進行介紹

雙向資源隔離

單向資源隔離

特殊資源隔離

性能隔離

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章