Dokcer組成原理簡介

2021-12-29 20:38:55 字數 1595 閱讀 1476

重要

docker在啟動容器的時候,需要建立檔案系統,為rootfs提供掛載點。最初docker僅能在支援aufs檔案系統的linux發行版上執行,但是由於aufs未能加入linux核心,為了尋求相容性、擴充套件性,docker在內部通過graphdriver機制這種可擴充套件的方式來實現對不同檔案系統的支援。目前,docker支援aufs,devicemapper,btrfs和vfs四種檔案系統。

首先來張圖了解docker的組成

docker映象

典型的linux檔案系統由bootfs和rootfs兩部分組成,bootfs(boot file system)主要包含 bootloader和kernel,bootloader主要是引導載入kernel,當kernel被載入到記憶體中後 bootfs就被umount了。 rootfs (root file system) 包含的就是典型 linux 系統中的/dev,/proc,/bin,/etc等標準目錄和檔案。

docker容器是建立在aufs基礎上的,aufs(以前稱之為another union fs,後來絕不不夠高大上,更名為advanced union fs)是一種union fs, 簡單來說就是支援將不同的目錄掛載到同乙個虛擬檔案系統下,並實現一種layer的概念。aufs將掛載到同一虛擬檔案系統下的多個目錄分別設定成read-only,read-write以及whiteout-able許可權,對read-only目錄只能讀,而寫操作只能實施在read-write目錄中。重點在於,寫操作是在read-only上的一種增量操作,不影響read-only目錄。當掛載目錄的時候要嚴格按照各目錄之間的這種增量關係,將被增量操作的目錄優先於在它基礎上增量操作的目錄掛載,待所有目錄掛載結束了,繼續掛載乙個read-write目錄,如此便形成了一種層次結構。

與傳統系統載入的區別

docker映象的典型結構如下圖。

【重點】

傳統的linux載入bootfs時會先將rootfs設為read-only,然後在系統自檢之後將rootfs從read-only改為read-write,然後我們就可以在rootfs上進行寫和讀的操作了。

但docker的映象卻不是這樣,它在bootfs自檢完畢之後並不會把rootfs的read-only改為read-write。而是利用union mount(unionfs的一種掛載機制)將乙個或多個read-only的rootfs載入到之前的read-only的rootfs層之上。在載入了這麼多層的rootfs之後,仍然讓它看起來只像是乙個檔案系統,在docker的體系裡把union mount的這些read-only的rootfs叫做docker的映象。但是,此時的每一層rootfs都是read-only的,我們此時還不能對其進行操作。當我們建立乙個容器,也就是將docker映象進行例項化,系統會在一層或是多層read-only的rootfs之上分配一層空的read-write的rootfs。

LoadRunner組成及其工作原理簡介

一 loadrunner工具組成 1 虛擬使用者指令碼生成器 捕獲終端使用者業務流程和建立自動效能測試指令碼,即我們在以後說的產生測試指令碼 2 壓力產生器 通過執行虛擬使用者產生實際的負載 3 使用者 協調不同負載機上虛擬使用者,產生步調一致的虛擬使用者 4 壓力排程 根據使用者對場景的設定,設定...

ADSL原理以及ADSL系統組成簡介

adsl asymmetric digital subscriber line 的全稱是非對稱數字式使用者線路,之所以稱之為非對稱,是由於其實現的速率是上行小於1mbps,下行小於7mbps。它是一種可以讓家庭或小型企業利用現有 網採用高頻數字壓縮方式,對網路服務商提供isp進行寬頻接入的技術。因此...

ADSL原理以及ADSL系統組成簡介

adsl asymmetric digital subscriber line 的全稱是非對稱數字式使用者線路,之所以稱之為非對稱,是由於其實現的速率是上行小於1mbps,下行小於7mbps。它是一種可以讓家庭或小型企業利用現有 網採用高頻數字壓縮方式,對網路服務商提供isp進行寬頻接入的技術。因此...