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

溫馨提示×

溫馨提示×

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

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

Docker鏡像構建的兩種方法解析

發布時間:2020-09-18 00:33:23 來源:腳本之家 閱讀:104 作者:dfengwei 欄目:服務器

關于Docker里面的幾個主要概念

這里用個不太恰當的比方來說明。

大家肯定安裝過ghost系統,鏡像就像是ghost文件,容器就像是ghost系統。你可以拿別人的ghost文件安裝系統(使用鏡像運行容器),也可以把自己現有的系統制作成ghost文件(從容器構建鏡像)。Dockerfile則像是一個生成ghost文件的腳本(鏡像構建腳本),這個腳本會指定去哪里下載哪個版本的window系統,再去哪里下載哪些軟件并安裝,再修改哪些配置文件,等等。本文主要講的是,如何從容器構建鏡像(把現有系統制作成ghost文件),和如何使用Dockerfile構建鏡像(使用腳本生成ghost文件)。

兩種方式構建鏡像的主要步驟:

1、從容器構建鏡像(以下簡稱容器鏡像
創建一個容器,比如使用tomcat:latest鏡像創建一個tomcat-test容器
修改tomcat-test容器的文件系統,比如修改tomcat的server.xml文件中的默認端口
使用commit命令提交鏡像

2、使用Dockerfile構建鏡像(以下簡稱Dockerfile鏡像
編寫Dockerfile文件
使用build命令構建鏡像

兩種構建方式的區別:

1、容器鏡像的構建者可以任意修改容器的文件系統后進行發布,這種修改對于鏡像使用者來說是不透明的,鏡像構建者一般也不會將對容器文件系統的每一步修改,記錄進文檔中,供鏡像使用者參考。

2、容器鏡像不能(更準確地說是不建議)通過修改,生成新的容器鏡像
從鏡像運行容器,實際上是在鏡像頂部上加了一層可寫層,所有對容器文件系統的修改,都在這一層中進行,不影響已經存在的層。比如在容器中刪除一個1G的文件,從用戶的角度看,容器中該文件已經沒有了,但從文件系統的角度看,文件其實還在,只不過在頂層中標記該文件已被刪除,當然這個標記為已刪除的文件還會占用鏡像空間。從容器構建鏡像,實際上是把容器的頂層固化到鏡像中。
也就是說, 對容器鏡像進行修改后,生成新的容器鏡像,會多一層,而且體積只會增大,不會減小。長此以往,鏡像將變得越來越臃腫。Docker提供的export和import命令可以一定程度上處理該問題,但也并不是沒有缺點。

3、容器鏡像依賴的父鏡像變化時,容器鏡像必須進行重新構建。如果沒有編寫自動化構建腳本,而是手工構建的,那么又要重新修改容器的文件系統,再進行構建,這些重復勞動其實是沒有價值的。

4、Dockerfile鏡像是完全透明的,所有用于構建鏡像的指令都可以通過Dockerfile看到。甚至你還可以遞歸找到本鏡像的任何父鏡像的構建指令。也就是說,你可以完全了解一個鏡像是如何從零開始,通過一條條指令構建出來的。

5、Dockerfile鏡像需要修改時,可以通過修改Dockerfile中的指令,再重新構建生成,沒有任何問題。

6、Dockerfile可以在GitHub等源碼管理網站上進行托管,DockerHub自動關聯源碼進行構建。當你的Dockerfile變動,或者依賴的父鏡像變動,都會觸發鏡像的自動構建,非常方便。
不管是官方還是我個人,都推薦使用第二種方式構建鏡像。

關于Dockerfile里面指令的詳細說明,這里就不一一列出了,大家可以參考官方文檔,或關注我之后的文章,當然網上也是一搜一大堆。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

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

AI

西乡县| 通渭县| 莱阳市| 隆昌县| 黔江区| 彭阳县| 大姚县| 西安市| 江油市| 宝兴县| 鹰潭市| 东丰县| 庄浪县| 无为县| 清徐县| 贡嘎县| 长春市| 叙永县| 屏东市| 郸城县| 阿坝| 安化县| 额济纳旗| 临潭县| 昌邑市| 锡林郭勒盟| 湟中县| 科技| 合肥市| 宜都市| 达孜县| 浮山县| 禹城市| 泰兴市| 栖霞市| 遂川县| 博爱县| 南昌县| 新河县| 灵寿县| 黎平县|