中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

微山县| 仲巴县| 桂阳县| 古田县| 定南县| 肥东县| 镇江市| 广饶县| 元朗区| 罗甸县| 新乡县| 邯郸市| 崇州市| 额济纳旗| 当雄县| 浦城县| 特克斯县| 上思县| 和平区| 郁南县| 合水县| 青田县| 巴南区| 米林县| 嘉定区| 岳西县| 镇平县| 武冈市| 北流市| 肇庆市| 鄄城县| 桦南县| 和林格尔县| 车险| 剑川县| 施秉县| 海口市| 于都县| 磴口县| 岑溪市| 阜平县|