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