成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從操作系統看Docker

系統 Linux
從操作系統看Docker,Docker 是操作系統能力的抽象重組,或者, 可以看成進程組粒度的可復用內核裁剪,其中以linux 內核中的Cgroup來管理進程組,以命名空間來實現資源隔離,以AUFS或者OverlayFS實現文件系統的掛載,從而,形成了一個通過網絡分發的容器環境。

Linux 操作系統的內核裁剪不僅是為了提升系統的安全性,而且是為了進一步提升應用系統的性能。Linux 的內核裁剪技術并沒有得到廣泛的應用,對于安全性、應用的性能以及開發效率而言,業界普遍采用的是虛擬化技術——虛擬機和容器。無論哪一種虛擬化技術,本質上都可以看作是操作系統能力的抽象、分拆和組合。

虛擬化技術一瞥

無論是哪一種虛擬化技術,都是在操作系統之上的不同抽象,從而形成了分層的架構。層次越多,調用鏈也相應地變長,運行時的開銷也就越大。

圖片

如上圖所示,虛擬機中的Hypervisor 這一層是一個常用的硬件虛擬化軟件,把操作系統抽象為多個底層的硬件接口,利用這些硬件接口,虛擬機可以實現自己操作系統。Docker則不同, 它構建在原有的操作系統之上,是某種程度的復用。

從部署時間來看,物理機由于涉及到采購和軟硬件安裝等因素,部署的時間最長,虛擬機則要短很多,Dcoker則是秒級的。

2013年,Docker 對外開源,2014年6月9日正式發布,很快便風靡全球,容器虛擬化技術的發展脈絡大致是這樣的——

圖片

Docker 的 OS 依賴

Docker 構建于操作系統之上,是強依賴于操作系統的虛擬化技術,依賴于Cgroup來管理進程組,依賴于命名空間來實現資源隔離,通過特定的文件系統來使用操作系統自身的文件系統。

Cgroup

Cgroup全稱為Linux Control Group,是 Linux 內核的一個功能,用來限制、控制與分離一個進程組的資源(如CPU、內存、磁盤輸入輸出等)。

Cgroup是由Google的工程師在2006年發起的,最早的名稱為進程容器(process containers)。在2007年,由于在Linux內核中,容器這個名詞有許多不同的意義,進而被重命名為cgroup,并且被合并到2.6.24的內核版本中,后來又添加了很多功能。

Cgroup的主要功能:

限制進程組可以使用的資源數量,例如,可以為進程組設定一個內存使用的上限,一旦進程組使用的內存達到限額再申請內存,就會觸發OOM。

進程組的優先級控制,例如,可以使用為某個進程組分配特定的cpu share。

記錄進程組使用的資源數量,例如,可以記錄某個進程組使用的cpu時間

進程組隔離,例如,可以使不同的進程組使用不同的命名空間,以達到隔離的目的,不同的進程組有各自的進程、網絡、文件系統掛載空間。

進程組控制,例如,將進程組掛起和恢復。

命名空間

Namespace(命名空間) 是 Linux 提供的一種內核級別資源隔離的方法。又稱為命名空間,它主要做訪問隔離,即同一個命名空間的多個資源(memory, CPU, network, pid)可以相互看到,但是之外的看不到。

目前Linux Namespace 大致有7種,如下表所示:

類型 

系統調用參數 

隔離資源

Mount 

CLONE_NEWNS 

系統掛載點

IPC 

CLONE_NEWIPC 

system V IPC(信號量,消息隊列,共享內存等)

UTS 

CLONE_NEWUTS 

主機名,NIS域名

PID 

CLONE_NEWPID 

進程PID

Network

CLONE_NEWNET

網絡設備,協議棧,端口

User 

CLONE_NEWUSER

用戶和用戶組

Cgroup 

CLONE_NEWCGROUP 

Cgroup 根目錄

這樣, 通過對內核的系統調用,即可實現相應的資源隔離。

多層單一化文件系統

早期的Docker使用AUFS文件系統,是Docker image的基石,可以將分布在不同地方的目錄掛載到同一個虛擬文件系統中,只有第一層(第一個文件夾層級)是可寫的,其余層是只讀的,增加/刪除文件時都會轉換為寫操作寫入可寫層。AUFS 的 Cow 特性能夠允許在多個容器之間共享分層,從而減少物理空間占用。

AUFS本質上仍是堆棧式的聯合文件系統。在 Linux啟動時,首先加載 bootfs目錄,這個目錄里面包括 Bootloader和kernel,Bootloader用來加載啟動 kernel。當kernel成功加載到內存中后, bootfs就會釋放掉, kernel隨之開始加載rootfs。rootfs包含的是 Linux系統中標準的 /dev、/proc、/bin、/etc等文件, 是后續kernel啟動的基礎,因此此時 kernel將 Rootfs加鎖,設為 readonly。在只讀權限下, kernel進行一系列的檢查操作。當kernel確認 rootfs包含的文件正確無誤后,將 readonly改為readwrite(可讀可寫),以后用戶就可以按照正確的權限對這些目錄進行操作了。

當 Docker虛擬化出來一個容器之后,就相當于有了內存、CPU、硬盤,但沒有操作系統。參考 Linux的啟動過程,通過 AUFS,將readonly權限的 rootfs添加到 bootfs之上,當rootfs檢查完畢之后,再將用戶所要使用的文件內容掛載到 rootfs之上,同樣是readonly權限。每次掛載一個 FS文件層,每層之間只會掛載增量。這些文件層就是堆棧式文件系統中所保存的數據,AUFS就是用來管理、使用這些文件層的文件系統。

圖片

目前,一些Docker開始嘗試使用OverlayFS,對比于AUFS,OverlayFS速度更快,實現更簡單。OverlayFS也是一種多層單一化的文件系統,它依賴并建立在其它的文件系統之上(例如ext4fs和xfs等等),并不直接參與磁盤空間結構的劃分,僅僅將原來底層文件系統中不同的目錄進行“合并”,然后向用戶呈現,這也就是聯合掛載技術。Linux 內核為Docker提供的OverlayFS驅動有兩種:overlay和overlay2。而overlay2是相對于overlay的一種改進,在inode利用率方面比overlay更有效。

Docker 的架構模型

目前來說,除了 Linux 系統可以直接運行 Docker之外,其他系統都是基于虛擬機運行的。

圖片

其中,Client是與 Docker 通信的一個組件,也就是客戶端。Docker daemon相當于守護進程,也就是 docker 的 Server。Image是鏡像,運行起來的鏡像就是一個容器。Registry是具體存放鏡像的倉庫,鏡像倉庫分為公有倉庫(如DockerHub、DockerPool)和私有倉庫。有了鏡像倉庫,用戶可以用它來提供上傳/下載 鏡像的能力,大多數倉庫都提供了檢索和版本整理能力。

Docker 能夠保持容器內部所有的配置和依賴關系始終不變,可以在任何擁有 Docker runtime 的環境快速部署而沒有遷移成本,實現了環境的標準化和版本化管理,具有較高的隔離性和安全性。

一句話小結

從操作系統看Docker,Docker 是操作系統能力的抽象重組,或者, 可以看成進程組粒度的可復用內核裁剪,其中以linux 內核中的Cgroup來管理進程組,以命名空間來實現資源隔離,以AUFS或者OverlayFS實現文件系統的掛載,從而,形成了一個通過網絡分發的容器環境。

責任編輯:武曉燕 來源: 喔家ArchiSelf
相關推薦

2010-08-02 10:55:29

vSphere 4.1

2012-10-15 09:28:33

Windows操作系統

2015-09-11 15:25:45

LinuxCon服務器操作系統

2016-08-22 12:52:41

GoogleFuchsia操作系統

2010-10-09 14:37:43

云操作系統

2019-08-19 10:43:21

操作系統鴻蒙國產系統

2015-04-26 22:28:52

UbuntuAndroidiOS

2010-04-22 14:53:07

Aix操作系統

2010-04-15 15:46:57

Unix操作系統

2017-05-24 11:25:08

2020-03-01 16:05:08

操作系統文件

2009-12-09 17:25:19

Linux操作系統

2024-07-08 12:03:41

2009-11-24 09:35:03

Chrome操作系統軟件支持

2023-01-03 00:00:17

2010-04-15 14:40:26

Unix操作系統

2021-06-30 15:25:13

操作系統Java

2021-07-01 11:56:35

操作系統Java IO

2013-11-05 14:30:45

桌面操作系統Mac OSWindows 8.1

2012-07-13 09:35:46

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品99久久久久久动医院 | 欧美精品二区 | 91在线观看 | 99久久精品免费看国产免费软件 | 久久精品欧美视频 | 日韩欧美国产一区二区三区 | 亚洲国产中文在线 | 韩日一区二区三区 | 国产精品视频一区二区三区不卡 | 久久久一区二区三区 | 久久999 | 欧美日韩亚洲一区 | 国产成人精品免费视频大全最热 | 欧美成人一级 | 亚洲欧美视频 | 欧美一区二区三区在线观看视频 | 91视频网| 日韩国产一区二区 | www.久久影视 | 久久精品亚洲精品国产欧美kt∨ | 美国一级毛片a | 国产精品一级在线观看 | 一区二区三区欧美在线观看 | 精品一区二区电影 | 国产精品久久久久久久久久免费看 | 久久婷婷香蕉热狠狠综合 | 国产精品视频www | 精品国产乱码一区二区三 | 亚洲视频免费在线观看 | 欧美日韩福利视频 | 中文字幕国产一区 | 一区二区三区网站 | 国产成人福利在线观看 | 久久久久国 | 国产精品久久久久久久久免费相片 | 9191av| 国产精品欧美一区二区 | 国产成人免费在线 | 国产精品久久一区二区三区 | 精品av | 欧美福利网站 |