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