您好,登錄后才能下訂單哦!
1、docker鏡像
docker鏡像類似于虛擬機的鏡像,類似于我們安裝系統(tǒng)的windows系統(tǒng),有的系統(tǒng)是純凈版(只有基礎的os),有的是克隆版(在os上安裝了軟件,如:qq等)。但他是靜態(tài)的,是只讀的。
鏡像是創(chuàng)建docker容器的基礎。
鏡像是分層存儲
鏡像由多層文件系統(tǒng)聯(lián)合組成(我們可以在pull鏡像、創(chuàng)建鏡像來充分理解這個概念)
鏡像構建時,會一層層構建,前一層是后一層的基礎。每一層構建完就不會再發(fā)生改變,后一層上的任何改變只發(fā)生在自己這一層。比如,刪除前一層文件的操作,實際不是真的刪除前一層的文件,而是僅在當前層標記為該文件已刪除。在最終容器運行的時候,雖然不會看到這個文件,但是實際上該文件會一直跟隨鏡像。因此,在構建鏡像的時候,需要額外小心,每一層盡量只包含該層需要添加的東西,任何額外的東西應該在該層構建結束前清理掉。
2、docker容器
容器是從鏡像創(chuàng)建的應用運行的實例。他可以啟動、開始、停止、刪除,而這些容器都是相互隔離、互不可見的。容器從鏡像啟動的時候,會在鏡像的最上層創(chuàng)建一個可寫層(存儲層)
容器存儲層的生存周期和容器一樣,容器消亡時,容器存儲層也隨之消亡。因此,任何保存于容器存儲層的信息都會隨容器刪除而丟失。
? 容器不應該向其存儲層內寫入任何數(shù)據(jù),容器存儲層要保持無狀態(tài)化。所有的文件寫入操作,都應該使用數(shù)據(jù)卷(Volume)、或者綁定宿主目錄,在這些位置的讀寫會跳過容器存儲層,直接對宿主(或網(wǎng)絡存儲)發(fā)生讀寫,其性能和穩(wěn)定性更高。
? 數(shù)據(jù)卷的生存周期獨立于容器,容器消亡,數(shù)據(jù)卷不會消亡。因此,使用數(shù)據(jù)卷后,容器刪除或者重新運行之后,數(shù)據(jù)卻不會丟失。
簡單來說,容器就是鏡像運行起來的一個沙盒。
3、docker倉庫
docker 倉庫類似于代碼倉庫,是docker集中存放鏡像文件的場所。我們構建完鏡像,可以push上傳到倉庫,下次使用可以pull下來直接使用。
docker可以分為公開倉庫(public),官方提供的倉庫是docker HUB(https://hub.docker.com)。國內的一些云服務商提供了針對Docker
Hub 的鏡像服務(Registry Mirror),這些鏡像服務被稱為加速器。常見的有阿里云加速器(https://ddddsl2r.mirror.aliyuncs.com) 、DaoCloud加速器(https://www.daocloud.io/mirror#accelerator-doc) 等?.還有一類是私有倉庫,用戶還可以在本地搭建私有Docker
Registry。Docker 官方提供了 Docker Registry 鏡像,可以直接使用做為私有 Registry 服務。另外,除了官方的Docker Registry外,還有第三方軟件實現(xiàn)了Docker Registry API,甚至提供了用戶界面以及一些高級功能。比如,VMWare Harbor和Sonatype Nexus。
倉庫注冊服務器(registry)是存放倉庫的地方,他上面往往存放著多個倉庫。每個倉庫集中存放某一類鏡像,包含的多個鏡像通常使用不同標簽(tag)進行區(qū)分。我們可以通過<倉庫名>:<標簽> 的格式來指定具體是這個軟件哪個版本的鏡像。如果不給出標簽,將以 latest 作為默認標簽。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。