亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker怎么制作鏡像

發布時間:2021-08-27 21:45:00 來源:億速云 閱讀:171 作者:chen 欄目:大數據

本篇內容介紹了“docker怎么制作鏡像”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!


使用過docker的都知道dockerfile,其用于定義制作鏡像的流程,由一系列命令和參數構成的腳本,這些命令應用于基礎鏡像并最終創建一個新的鏡像。

有時候,我們想在原有鏡像基礎上修改、增加文件,由于國內網絡原因,重新制作鏡像會很慢,甚至失敗;或者根本不知道鏡像的dockerfile長什么樣。改動很小情況下,可以用以下方式制作鏡像。

拿k8s負載均衡器組件ingress-nginx:0.24.1版本為例:

docker怎么制作鏡像

如果我們修改了其源碼,并編譯生成nginx-ingress-controller二進制文件,可以用以下方式進行制作新鏡像。

首先用命令:

docker run -ti --rm k8s-deploy/nginx-ingress-controller:0.24.1 bash

將鏡像運行起來。其中-ti表示打開一個交互輸入終端;--rm表示運行停止后自動清理。

運行后可以看到默認用戶為www-data,a298fe62a4f9表示容器id

docker怎么制作鏡像  

我們可以在容器里創建目錄:

 

重新打開一個shell窗口,用于給容器內復制一個測試文件:

docker cp ingressgroup-upstream.tmpl a298fe62a4f9:/etc/nginx/conf.d/include-server-map/

docker怎么制作鏡像

復制進去后,當要將其移動到其他位置時,報Permission denied權限不足,因為默認為www-data用戶,復制到容器內的ingressgroup-upstream.tmpl屬主:屬組也是root,如果不把root修改為www-data,肯定會報沒權限的錯。

docker怎么制作鏡像


通過以下命令重新運行鏡像:

docker run -ti --rm -u 0 k8s-deploy/nginx-ingress-controller:0.24.1 bash

-u 0代表用root用戶運行容器,而不是dockerfile里指定的用戶,這樣運行后可以看到用戶為root,記錄容器id:ffdc80f3cce7

docker怎么制作鏡像  

重新執行復制操作:

docker怎么制作鏡像

此時就可以隨意移動和修改文件的權限、屬組、屬主了。

docker怎么制作鏡像  

修改完畢后,執行以下命令將鏡像commit到本地倉庫:

docker commit ffdc80f3cce7 k8s-deploy/nginx-ingress-controller:0.24.1-temp

commit后跟的是容器id,最后跟的是新鏡像名稱。push命令將新鏡像推到遠程harbor倉庫。

docker怎么制作鏡像

運行新制作的鏡像,可以看到我們修改的文件。

docker怎么制作鏡像

這種方式一般用于測試,弊端是可能會導致鏡像越來越大。


“docker怎么制作鏡像”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵山县| 和田县| 芷江| 通化县| 泸定县| 砚山县| 抚宁县| 班玛县| 罗定市| 怀安县| 肇庆市| 明星| 高平市| 蕉岭县| 醴陵市| 彰化县| 泰顺县| 桂阳县| 东莞市| 盈江县| 易门县| 修文县| 汝州市| 灵宝市| 昆山市| 新绛县| 梁河县| 济阳县| 石台县| 清苑县| 富源县| 湖口县| 台北县| 大埔县| 乌恰县| 永新县| 榆林市| 新建县| 汉沽区| 台州市| 宜春市|