接上篇文章,我們繼續(xù)介紹鏡像,在上一篇文章給大家講解了鏡像的一些基本概念和最基本的操作。今天我們繼續(xù)和大家說說如何構(gòu)建鏡像
鏡像的構(gòu)建有三種方法:
1. 基于運行的容器狀態(tài)生成新的鏡像,即docker commit;
2. 基于Dockerfile構(gòu)建鏡像,即docker build;
3. 利用Docker Hub自動構(gòu)建鏡像。
那這篇文章就讓我們霽一下使用docker commit來構(gòu)建鏡像
通過前面的理論我們已經(jīng)知道要運行容器就需要使用鏡像,顯然使用現(xiàn)成的鏡像(無論是從Docker Hub還是從別人處獲?。┰诜奖悴贿^了。但是實際工作中,現(xiàn)成的鏡像往往不能完全滿足我們的需求。那這個時候就需要我們基于已有的鏡像去構(gòu)建新的鏡像。Docker提供的docker commit命令很好的實現(xiàn)了這一功能,其過程可以總結(jié)為:
1) 基于已有的鏡像運行容器;
2) 進入容器修改容器;
3) 利用docker commit生成新的鏡像。
下面就讓我們來看一下示例:
做個小例子:
此示例將下載一個nginx容器,并改變里面的index.html文件內(nèi)容,生成一個新的鏡像并提交,同時讓大家借助此實驗了解鏡像分層的概念。
步驟 1 在后臺運行一個nginx容器,取名為nginx1,并映射到宿主機80端口。
步驟 2 構(gòu)建完以后,我們通過瀏覽器可以訪問容器nginx1。
步驟 3 現(xiàn)在進入容器修改nginx1的index.html文件內(nèi)容,以便構(gòu)建一個新的容器
步驟 4 使用瀏覽器,驗證nginx1容器內(nèi)容修改成功。
步驟 5 將容器nginx1保存為鏡像,新鏡像命名為nginx:v1.1。并提交新的鏡像
步驟 6 比較nginx:v1.1和nginx:latest兩個鏡像,發(fā)現(xiàn)nginx:v1.1多了一個鏡像層。
nginx:v1.1的鏡像
nginx的鏡像
我們清楚的看到nginx:v1.1多了一個鏡像層
步驟 7 查看現(xiàn)有的鏡像
現(xiàn)在使用docker commit已經(jīng)完成了新鏡像的構(gòu)建,你也可以去試試了