什么是Docker鏡像
簡(jiǎn)單地理解,Docker鏡像就是一個(gè)Linux的文件系統(tǒng)(Root FileSystem),這個(gè)文件系統(tǒng)里面包含可以運(yùn)行在Linux內(nèi)核的程序以及相應(yīng)的數(shù)據(jù)。
談到這里,我們可能需要先補(bǔ)充一點(diǎn)與Linux操作系統(tǒng)相關(guān)的知識(shí):
一般而言, Linux分為兩個(gè)部分:Linux內(nèi)核(Linux Kernel)與用戶空間,而真正的Linux操作系統(tǒng),是指Linux內(nèi)核,我們常用的Ubuntu、CentOS等操作系統(tǒng)其實(shí)是不同廠商在Linux內(nèi)核基礎(chǔ)上添加自己的軟件與工具集(tools)形成的發(fā)布版本(Linux Distribution)。
因此,我們也可以把鏡像看成是上面所說的用戶空間,當(dāng)Docker通過鏡像創(chuàng)建一個(gè)容器時(shí),就是將鏡像定義好的用戶空間作為獨(dú)立隔離的進(jìn)程運(yùn)行在宿主機(jī)的Linux內(nèi)核之上。
這里要強(qiáng)調(diào)一下鏡像的兩個(gè)特征:
1、鏡像是分層(Layer)的:即一個(gè)鏡像可以多個(gè)中間層組成,多個(gè)鏡像可以共享同一中間層,我們也可以通過在鏡像添加多一層來生成一個(gè)新的鏡像。
2、鏡像是只讀的(read-only):鏡像在構(gòu)建完成之后,便不可以再修改,而上面我們所說的添加一層構(gòu)建新的鏡像,這中間實(shí)際是通過創(chuàng)建一個(gè)臨時(shí)的容器,在容器上增加或刪除文件,從而形成新的鏡像,因?yàn)槿萜魇强梢詣?dòng)態(tài)改變的。
什么是倉庫
倉庫(Repository)是集中存儲(chǔ)鏡像的地方,這里有個(gè)概念要區(qū)分一下,那就是倉庫與倉庫服務(wù)器(Registry)是兩回事,比如Docker Hub,就是Docker官方提供的一個(gè)倉庫服務(wù)器,不過有時(shí)候我們不太需要太過區(qū)分這兩個(gè)概念。
推薦教程:docker教程