Docker筆記2|鏡像
鏡像原理:
1.聯(lián)合文件系統(tǒng)UnionFS:
一種分層的輕量級(jí)文件系統(tǒng),它可以把多個(gè)目錄內(nèi)容聯(lián)合掛載到同一目錄下(而目錄的物理位置是分開(kāi)的),從而形成一個(gè)單一的文件系統(tǒng),這種特性可以讓使用者像是使用一個(gè)目錄一樣使用聯(lián)合文件系統(tǒng)。
UnionFS允許只讀和可讀寫(xiě)目錄并存,就是說(shuō)可同時(shí)刪除和增加內(nèi)容。UnionFS應(yīng)用的地方很多,比如在多個(gè)磁盤(pán)分區(qū)上合并不同文件系統(tǒng)的主目錄。另外UnionFS具有寫(xiě)時(shí)復(fù)制(copy-on-write)功能UnionFS可以把只讀和可讀寫(xiě)文件系統(tǒng)合并在一起,虛擬上允許只讀文件系統(tǒng)的修改可以保存到可寫(xiě)文件系統(tǒng)當(dāng)中
UnionFS的核心就是高效的利用磁盤(pán)空間。
docker將依賴(lài)的操作系統(tǒng)、各種lib依賴(lài)整合打包在一起(即鏡像),然后容器啟動(dòng)時(shí),作為它的根目錄(根文件系統(tǒng)rootfs),使得容器進(jìn)程的各種依賴(lài)調(diào)用都在這個(gè)根目錄里,這樣就做到了環(huán)境的一致性。它讓Docker 可以把鏡像做成分層的結(jié)構(gòu),從而使得鏡像的每一層可以被共享。
———————————
層級(jí)結(jié)構(gòu):
......
Add【image】
Add【image】
Rootfs【base image】即各操作系統(tǒng)的發(fā)行版如centos,且是精簡(jiǎn)版os
Bootfs【host的Kernel、bootloader】
———————————-
2.分層:
如:
第三層:app2.0
第二層:app1.0及其文件
第一層:OS,mysql,tomcat
則2.0的發(fā)行將覆蓋第二層,docker對(duì)外展示時(shí),三層鏡像合并。
docker鏡像都是只讀的,容器啟動(dòng)時(shí),一個(gè)新的可寫(xiě)層被加載到鏡像的頂部,被稱(chēng)為容器層,下面的就叫鏡像層。
提交鏡像
啟動(dòng)一個(gè)鏡像
修改鏡像
提交鏡像
?docker commit -m=“信息”? -a=“作者”? 容器id? 目標(biāo)鏡像名[TAG]?