如何理解docker鏡像
??Docker簡介
??Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的Linux或Windows機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
??如何理解Docker鏡像
??可以把Docker鏡像理解為 VM 模板,VM 模板就像停止運(yùn)行的 VM,而 Docker 鏡像就像停止運(yùn)行的容器;而作為一名研發(fā)人員,則可以將鏡像理解為類(Class)。
??首先需要先從鏡像倉庫服務(wù)中拉取鏡像。常見的鏡像倉庫服務(wù)是 Docker Hub,但是也存在其他鏡像倉庫服務(wù)。
??拉取操作會(huì)將鏡像下載到本地 Docker 主機(jī),可以使用該鏡像啟動(dòng)一個(gè)或者多個(gè)容器。
??鏡像由多個(gè)層組成,每層疊加之后,從外部看來就如一個(gè)獨(dú)立的對象。鏡像內(nèi)部是一個(gè)精簡的操作系統(tǒng)(OS),同時(shí)還包含應(yīng)用運(yùn)行所必須的文件和依賴包。
??因?yàn)槿萜鞯脑O(shè)計(jì)初衷就是快速和小巧,所以鏡像通常都比較小。
??前面多次提到鏡像就像停止運(yùn)行的容器(類)。實(shí)際上,可以停止某個(gè)容器的運(yùn)行,并從中創(chuàng)建新的鏡像。
??在該前提下,鏡像可以理解為一種構(gòu)建時(shí)(build-time)結(jié)構(gòu),而容器可以理解為一種運(yùn)行時(shí)(run-time)結(jié)構(gòu)
??docker鏡像的制作方法
??方法1:docker commit
??1.創(chuàng)建一個(gè)安裝好apache 工具的容器鏡像。
??命令是:
??[root@localhost]#docker run -it docker.io/centos:latest /bin/bash #運(yùn)行docker 鏡像
??[root@localhost]# yum install httpd # 在container 中安裝 apache 軟件包
??[root@localhost]# exit #退出容器鏡像
??2.根據(jù)容器當(dāng)前狀態(tài)做一個(gè)image 鏡像:創(chuàng)建一個(gè)安裝了apache 工具的centos 鏡像
??語法:docker commit 或者
??方法2:通過:docker build 創(chuàng)建一個(gè)基于centos的httpd web 服務(wù)器鏡像。
??使用docker build 創(chuàng)建鏡像時(shí),需要使用 dockerfile 文件自動(dòng)化制作image 鏡像
??注意:dockerfile 有點(diǎn)像源碼編譯時(shí)./configure后產(chǎn)生的 Makefile
??1.創(chuàng)建 docker-build目錄
??[root@localhost]# mkdir /docker -build
??2.進(jìn)入這個(gè)目錄
??[root@localhost]# cd /docker-build
??3.創(chuàng)建一個(gè)文件 Dockerfile
??[root@localhost docker-build]# touch Dockerfile
??注意:make自動(dòng)化編譯時(shí)需要makefile文件,自動(dòng)化創(chuàng)建docker 鏡像時(shí),需要Dockerfile
??4.編輯dockerfile
??Dockerfile 用來創(chuàng)建一個(gè)自定義的image,包含了用戶指定的軟件依賴等。
??[root@localhost]#vim Dockerfile
??寫入的內(nèi)容:
??FROM docker.io/centos:latest #我是基于那個(gè)鏡像來做的
??MAINTAINER #作者是誰
??RUN yum -y install httpd #做什么《拿這個(gè)鏡像docker.io/centos:latest運(yùn)行實(shí)例,然后執(zhí)行yum命令,進(jìn)行安裝》
??ADD start.sh /usr/local/bin/start.sh #把start.sh這個(gè)啟動(dòng)腳本添加到/usr/local/bin這個(gè)文件下
??ADD index.html /var/www/html/index.html #把index.html這個(gè)啟動(dòng)腳本添加到/var/www/html這個(gè)文件下
??以上就是對docker鏡像的全部介紹,有制作docker鏡像需求的朋友可以考慮到新網(wǎng)咨詢,今后本站還將推送更多新資訊,請繼續(xù)關(guān)注本站。
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科