91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

宁乡县| 肇庆市| 苏州市| 湘潭市| 江川县| 光山县| 淮北市| 天峻县| 晴隆县| 祁门县| 楚雄市| 龙游县| 石阡县| 翼城县| 平南县| 滁州市| 新乡市| 广州市| 二手房| 长沙县| 龙山县| 宣汉县| 金秀| 晋城| 柏乡县| 滦南县| 海城市| 南京市| 包头市| 沧州市| 泰州市| 丹阳市| 和田市| 山阳县| 咸宁市| 保康县| 福建省| 晋州市| 醴陵市| 综艺| 泰顺县|