您好,登錄后才能下訂單哦!
本篇內容主要講解“docker制作成鏡像的方法介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“docker制作成鏡像的方法介紹”吧!
docker制作鏡像一般有三個方法:1.基于容器制作;2.基于dockerfile實現,鏡像制作的程序文件;3.Docker Hub Automated Builds。這里我們來介紹下基于容器制作鏡像。
舉例來說,啟動干凈的鏡像文件busybox,然后再容器內創建httpd的根目錄和index.html文件,然后制作成行的鏡像。
啟動容器,名稱為sunny01img
docker run -it --name sunny01img busybox:sunny01 #在容器內進行修改 / # mkdir -p /web/html / # cd /web/html /web/html # vi index.html <h2>this is sunny docker image,it is a nice day!<\h2>
在另一個終端,執行如下命令
docker commit -a "sunny<sunny@sunny.docker>" -p -m "for test commit image" sunny01img
用命令查看新生成的鏡像
docker images
查看到有tag為none的新生成的鏡像
然后將鏡像推送到云服務商的鏡像倉庫中,使用新的鏡像來啟動容器
新建一個標簽
docker tag 3498bc48a842 websrv:sunnyweb01
將新的鏡像websrv:sunnyweb01 運行為守護模式(-d,即后臺),然后指定進程為httpd,前端運行模式(-f),指定家目錄為/web/html
docker run --name sunnyweb01 -d websrv:sunnyweb01 httpd -f -h /web/html
查看
docker ps
查看到websrv:sunnyweb01鏡像運行為容器sunnyweb01.
查看進程信息
docker top sunnyweb01
查看詳細容器信息
docker inspect sunnyweb01
查看到當前的容器ip,測試httpd的服務
改變容器的默認啟動命令
在第一版新建鏡像websrv:sunnyweb01的基礎上創建第二版的鏡像,在另一個終端上,不執行默認的cmd,而是默認啟動httpd服務
首先,先啟動鏡像,進入cmd,執行相關命令
docker run --name sunnyweb02 -it websrv:sunnyweb01
打開另一個shell終端,執行如下命令,生成一個新的鏡像
docker commit -a "sunny <sunny@ghnsunny.cn>" -p -m "web server" -c 'CMD ["/bin/httpd","-f","-h","/web/html"]' sunnyweb02
注意 -c,修改運行中的命令,后接一個字典,所有的字段都要分別傳遞,用引號引用,逗號隔開,否則參數傳遞失敗,導致鏡像不能啟動。
sunnyweb02是指當前要作為鏡像的模板容器名稱,如這里以sunnyweb02這個容器作為模板來創建新鏡像
給新生成的鏡像打標簽,將新生成的鏡像推送到云倉庫
啟動鏡像,容器名稱為web2.0,并且運行在后臺(-d)
測試,查看容器是否正常運行
docker ps
查看容器的ip
docker inspect web2.0
測試httpd服務
這個例子說明,制作鏡像是可以-c改變默認的命令,而不是默認的sh命令,可以讓容器基于新建鏡像啟動時運行指定的命令。
到此,相信大家對“docker制作成鏡像的方法介紹”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。