關(guān)于Docker你不知道的那些事之Docker 鏡像

      網(wǎng)友投稿 1002 2025-03-31

      docker 鏡像


      docker鏡像是什么

      UnionFS(聯(lián)合文件系統(tǒng))

      Docker鏡像加載原理

      分層的鏡像

      為什么Docker采用這種分層結(jié)構(gòu)呢?

      特點(diǎn)

      Docker鏡像commit操作補(bǔ)充

      案例演示

      關(guān)于Docker你不知道的那些事之Docker 鏡像

      Docker鏡像是什么

      鏡像是一種輕量級、可執(zhí)行的獨(dú)立軟件包,用來打包軟件環(huán)境和基于運(yùn)行環(huán)境開發(fā)的軟件,它包含運(yùn)行某個(gè)軟件所需要的所有內(nèi)容,包括代碼、運(yùn)行時(shí)、庫、環(huán)境變量和配置文件。

      UnionFS(聯(lián)合文件系統(tǒng))

      Union文件系統(tǒng)(UnionFS)是

      一種分層、輕量級并且高性能的文件系統(tǒng)

      ,它支持對文件系統(tǒng)的修改作為一次提交來層層的疊加,同時(shí)可以將不同目錄掛載到同一個(gè)虛擬文件系統(tǒng)下(unite several directories into a single virtual filesystem)。Union文件系統(tǒng)是Docker鏡像的基礎(chǔ)。鏡像可以通過分層來進(jìn)行繼承,基于基礎(chǔ)鏡像(沒有父鏡像),可以制作各種具體的應(yīng)用鏡像。

      特性:一次同時(shí)加載多個(gè)文件系統(tǒng),但從外面看起來,只能看到一個(gè)文件系統(tǒng),聯(lián)合加載會(huì)把各層文件系統(tǒng)疊加起來,這樣最終的文件系統(tǒng)會(huì)包含所有底層的文件和目錄。

      Docker鏡像加載原理

      docker的鏡像實(shí)際上由一層一層的文件系統(tǒng)組成,這種層級的文件系統(tǒng)UnionFS。

      bootfs(boot file system)主要包含boot loader和kernel,BootLoader主要是引導(dǎo)加載kernel,Linux剛啟動(dòng)時(shí)會(huì)加載bootfs文件系統(tǒng),在Docker鏡像的最底層是bootfs。這一層與我們典型的Linux/Unix系統(tǒng)是一樣的,包含boot加載器和內(nèi)核。當(dāng)boot加載完成之后整個(gè)內(nèi)核就都在內(nèi)存中了,此時(shí)內(nèi)存的使用權(quán)已由bootfs轉(zhuǎn)交個(gè)內(nèi)核,此時(shí)系統(tǒng)也會(huì)卸載bootfs。

      rootfs(root file system),再bootfs之上。包含的就是典型Linux系統(tǒng)中的/dev,/proc,/bin,/etc等標(biāo)準(zhǔn)目錄和文件。rootfs就是各種不同操作系統(tǒng)發(fā)行版,比如Ubuntu,CentOS等等。

      平時(shí)我們安裝進(jìn)虛擬機(jī)的CentOS都是好幾個(gè)G,為什么Docker這里才200M?

      對于一個(gè)精簡的OS,rootfs可以很小,只需要包括最基本的命令,工具和程序就可以了,因?yàn)榈讓又苯佑肏ost的kernel,自己只需要提供rootfs就行了。由此可見對于不同的Linux發(fā)行版,bootfs基本是一致的,rootfs會(huì)有差別,因此不同的發(fā)行版可以共用bootfs。

      分層的鏡像

      為什么Docker采用這種分層結(jié)構(gòu)呢?

      最大的好處就是-共享資源

      比如:有多個(gè)鏡像都從相同的base鏡像構(gòu)建而來,那么宿主機(jī)只需在磁盤上保存一份base鏡像,同是內(nèi)存中也只需加載一份base鏡像,就可以為所有容器服務(wù)了。而且鏡像的每一層都可以被共享。

      特點(diǎn)

      Docker鏡像都是只讀的

      當(dāng)容器啟動(dòng)時(shí),一個(gè)新的可寫層被加載到鏡像的頂層。

      這一層通常被稱作“容器層”,“容器層”之下的都叫“鏡像層”。

      Docker鏡像commit操作補(bǔ)充

      案例演示

      從Hub上下載Tomcat鏡像到本地并運(yùn)行成功運(yùn)行:docker run -it -p 8080:8080 tomcat

      -p 主機(jī)端口 : docker容器端口

      -P 隨機(jī)分配端口

      i:交互

      t:終端

      故意刪除上一步鏡像生產(chǎn)Tomcat容器的文檔

      也即當(dāng)前的Tomcat運(yùn)行實(shí)例是一個(gè)沒有文檔內(nèi)容的容器,以它作為模板commit一個(gè)沒有doc的Tomcat新鏡像atguigu/Tomcat02

      docker commit -a=“zzyy” -m=“del tomcat docs” d52498cea537 atguigu/tamcat02:1.2

      d52498cea537: 當(dāng)前正在運(yùn)行的容器ID

      啟動(dòng)我們新鏡像并和原來的對比

      Docker 容器 鏡像服務(wù)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Excel2010如何刪除數(shù)據(jù)表中的重復(fù)條目將重復(fù)數(shù)據(jù)批量刪除
      下一篇:Head First 設(shè)計(jì)模式第十章-狀態(tài)模式 狀態(tài)模式(headcount)
      相關(guān)文章
      亚洲精品高清一二区久久| 99久久国产亚洲综合精品| 亚洲hairy多毛pics大全| 亚洲国产模特在线播放| 亚洲最新黄色网址| 亚洲视频欧洲视频| 亚洲视频在线观看视频| 亚洲综合精品香蕉久久网97| 亚洲成色在线影院| 亚洲av最新在线网址| 亚洲高清在线视频| 亚洲精品视频久久| 亚洲另类精品xxxx人妖| 久久99亚洲网美利坚合众国| 久久精品国产亚洲AV高清热 | 久久夜色精品国产嚕嚕亚洲av| 亚洲日韩一页精品发布| 亚洲乱色熟女一区二区三区丝袜 | 亚洲人妻av伦理| 在线日韩日本国产亚洲| 亚洲精品中文字幕无码蜜桃| 亚洲av中文无码乱人伦在线播放 | 国产精品亚洲专区无码不卡| 亚洲成年看片在线观看| 亚洲天堂在线视频| 曰韩亚洲av人人夜夜澡人人爽| 亚洲人成伊人成综合网久久久 | 亚洲精品美女久久7777777| 怡红院亚洲红怡院在线观看| 无码国产亚洲日韩国精品视频一区二区三区 | 亚洲国产aⅴ成人精品无吗| 亚洲Av无码乱码在线播放| 亚洲AV网站在线观看| 亚洲日韩精品无码一区二区三区 | 亚洲AV综合色一区二区三区| 久久亚洲日韩精品一区二区三区 | 精品亚洲一区二区三区在线观看 | 久久亚洲AV成人无码国产电影 | 超清首页国产亚洲丝袜| 久热综合在线亚洲精品| 亚洲综合激情九月婷婷|