docker入門到實(shí)戰(zhàn)(3)基本概念

Docker Client 客戶端 / Docker Daemon 守護(hù)進(jìn)程

docker是CS架構(gòu),Docker Daemon守護(hù)進(jìn)程即為服務(wù)端

客戶端向守護(hù)進(jìn)程發(fā)起請(qǐng)求,既可以在本地也可以在遠(yuǎn)程

docker實(shí)戰(zhàn)入門(3)基本概念

Docker Image 鏡像

鏡像是容器的基石,就像容器的源代碼,保存了用于啟動(dòng)容器的各項(xiàng)條件和配置

docker的鏡像是一個(gè)層疊的只讀文件系統(tǒng),最底端是一個(gè)引導(dǎo)文件系統(tǒng)(bootfs),這很像典型的linux的引導(dǎo)文件系統(tǒng),docker用戶幾乎永遠(yuǎn)不會(huì)和引導(dǎo)文件系統(tǒng)有交互,實(shí)際上當(dāng)一個(gè)容器啟動(dòng)后將會(huì)被移動(dòng)到內(nèi)存中,而引導(dǎo)文件系統(tǒng)將會(huì)被卸載。而docker鏡像的第二層是root文件系統(tǒng)(rootfs),root文件系統(tǒng)可以是一種或者多種操作系統(tǒng),比如ubuntu或者centos,在傳統(tǒng)的文件系統(tǒng)中,root文件系統(tǒng)會(huì)最先以只讀的方式加載,當(dāng)引導(dǎo)結(jié)束并完成完整性檢查之后它才會(huì)被切換到讀寫模式。但是在docker中,rootfs永遠(yuǎn)是只讀狀態(tài)。 并且docker利用聯(lián)合加載技術(shù)(union mount)又會(huì)在rootfs之上加載更多的只讀文件系統(tǒng)。聯(lián)合加載指的是一次同時(shí)加載多個(gè)文件系統(tǒng),但是在外面看起來只能看到一個(gè)文件系統(tǒng),聯(lián)合加載會(huì)將各層文件系統(tǒng)疊加在一起,這樣最終的文件系統(tǒng)會(huì)包含所有的底層文件和目錄,docker將這樣的文件系統(tǒng)稱為鏡像。

docker實(shí)戰(zhàn)入門(3)基本概念

Docker Container 容器

容器通過鏡像來啟動(dòng),容器是鏡像的執(zhí)行單元,如果說鏡像是docker生命周期中的構(gòu)建和打包階段,那么容器則是啟動(dòng)和執(zhí)行階段。當(dāng)一個(gè)容器啟動(dòng)時(shí),docker會(huì)在該鏡像的最頂層加載一個(gè)可寫的文件層,我們?cè)赿ocker中運(yùn)行的程序就是在這個(gè)層中執(zhí)行的。docker第一次啟動(dòng)一個(gè)容器時(shí),初始的讀寫層是空的,當(dāng)文件系統(tǒng)發(fā)生變化時(shí),這些變化都會(huì)應(yīng)用在這一層上。比如如果想修改一個(gè)文件,這個(gè)文件首先會(huì)從該讀寫層下面的只讀層復(fù)制到該讀寫層,該文件的只讀版本依然存在,但是已經(jīng)被讀寫層中的該文件副本所隱藏,這就是docker中的一個(gè)重要技術(shù)寫時(shí)復(fù)制(copy on write).

每個(gè)只讀鏡像層都是只讀的,并且以后永遠(yuǎn)不會(huì)變化,當(dāng)創(chuàng)建一個(gè)新容器時(shí)docker會(huì)構(gòu)建出一個(gè)鏡像棧,在棧的最頂層添加可寫層,這個(gè)可寫層加上下面的鏡像層以及一些配置數(shù)據(jù)就構(gòu)成了一個(gè)容器。容器的這些特點(diǎn)加上鏡像的分層框架使我們可以快速構(gòu)建鏡像,并允許包含我們自己應(yīng)用程序的容器。

docker實(shí)戰(zhàn)入門(3)基本概念

Docker Registry倉庫

docker用倉庫保存用戶構(gòu)建的鏡像,倉庫分為公有和私有兩種,docker Hub是docker官方的公有倉庫。我們可以通過這個(gè)網(wǎng)站查找我們需要的鏡像為我們節(jié)省構(gòu)建鏡像的時(shí)間。

docker實(shí)戰(zhàn)入門(3)基本概念
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • docker常用命令原理圖概覽: 按照docker官網(wǎng)上的說法,docker的文件系統(tǒng)分為兩層:bootfs和ro...
    燕京博士閱讀 3,131評(píng)論 2 32
  • 《Docker從入門到實(shí)踐》閱讀筆記 原書地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo閱讀 11,619評(píng)論 1 39
  • docker基本概念 1. Image Definition 鏡像 Image 就是一堆只讀層 read-only...
    慢清塵閱讀 8,996評(píng)論 1 21
  • Docker — 云時(shí)代的程序分發(fā)方式 要說最近一年云計(jì)算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,828評(píng)論 15 147
  • 解散了那個(gè)從2011年就陪伴著自己的群,那個(gè)叫做雨茗煙的群。有很多感慨,也曾經(jīng)為他付出過,可是就像是現(xiàn)實(shí)中找不到符...
    顏沐堯Zoe閱讀 160評(píng)論 0 0

友情鏈接更多精彩內(nèi)容