邢德奇 傅康平 李華夏
(中國電子科技集團公司電子科學(xué)研究院 北京市 100041)
容器技術(shù)在類Unix 操作系統(tǒng)內(nèi)核提供的資源隔離特性基礎(chǔ)上,通過將應(yīng)用軟件與其所依賴的運行環(huán)境共同打包,形成可獨立運行且不發(fā)生相互干擾的實體,稱為“容器”。相較于傳統(tǒng)的虛擬化技術(shù),由于共享了宿主計算機的操作系統(tǒng)內(nèi)核,通過容器技術(shù)實現(xiàn)的虛擬化,在實現(xiàn)了各類資源的共享和隔離的同時,其用于虛擬化本身的資源開銷顯著小于傳統(tǒng)虛擬化方法。因此,容器技術(shù)已經(jīng)廣泛應(yīng)用于復(fù)雜系統(tǒng)的服務(wù)端軟件封裝。結(jié)合以Kubernetes 為代表的容器編排技術(shù),可實現(xiàn)大規(guī)模業(yè)務(wù)容器的集群化運行治理。
容器技術(shù)是一種是操作系統(tǒng)層虛擬化技術(shù),代表性的實現(xiàn)方案包括LXC、rkt、Docker 等,其中又以Docker 最為流行。本文也將以Docker 容器技術(shù)為例,分析容器鏡像倉庫的一般架構(gòu),并針對弱網(wǎng)絡(luò)下的“云邊”協(xié)同場景,提出一種更高效率的容器鏡像倉庫設(shè)計,滿足云邊場景下的容器鏡像倉庫應(yīng)用需求。
在Docker 容器技術(shù)中,一般將“容器”定義為提供了隔離能力的虛擬化運行時環(huán)境,而將“鏡像”定義為包含容器運行所需環(huán)境配置和文件的容器模版。簡單的說,容器是由特定鏡像產(chǎn)生的運行實例。本節(jié)將簡要分析Docker 組織容器和鏡像文件系統(tǒng)的一般方法和特性,而本文鏡像倉庫的設(shè)計則正是基于Docker 文件系統(tǒng)的這些特性。
說到Docker 的文件系統(tǒng),就不得不提“聯(lián)合文件系統(tǒng)”(Union FileSystem),它是一種面向Linux、FreeBSD 和NetBSD 的文件系統(tǒng)服務(wù),允許不同文件系統(tǒng)的文件和目錄(稱為“分枝”)透明覆蓋,合并形成一個完整的、一致的文件系統(tǒng)。……