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