精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當(dāng)前位置:云計(jì)算行業(yè)動(dòng)態(tài) → 正文

關(guān)于Docker里面的幾個(gè)主要概念

責(zé)任編輯:editor005 作者:dfengwei |來(lái)源:企業(yè)網(wǎng)D1Net  2017-07-14 14:39:54 本文摘自:博客園

  這里用個(gè)不太恰當(dāng)?shù)谋确絹?lái)說(shuō)明。

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

兩種方式構(gòu)建鏡像的主要步驟:

1.從容器構(gòu)建鏡像(以下簡(jiǎn)稱容器鏡像)

創(chuàng)建一個(gè)容器,比如使用 tomcat:latest 鏡像創(chuàng)建一個(gè)tomcat-test容器

修改tomcat-test容器的文件系統(tǒng),比如修改tomcat的server.xml文件中的默認(rèn)端口

使用commit命令提交鏡像

2.使用Dockerfile構(gòu)建鏡像(以下簡(jiǎn)稱Dockerfile鏡像)

編寫Dockerfile文件

使用build命令構(gòu)建鏡像

兩種構(gòu)建方式的區(qū)別:

1.容器鏡像的構(gòu)建者可以任意修改容器的文件系統(tǒng)后進(jìn)行發(fā)布,這種修改對(duì)于鏡像使用者來(lái)說(shuō)是不透明的,鏡像構(gòu)建者一般也不會(huì)將對(duì)容器文件系統(tǒng)的每一步修改,記錄進(jìn)文檔中,供鏡像使用者參考。

2.容器鏡像不能(更準(zhǔn)確地說(shuō)是不建議)通過(guò)修改,生成新的容器鏡像。

從鏡像運(yùn)行容器,實(shí)際上是在鏡像頂部上加了一層可寫層,所有對(duì)容器文件系統(tǒng)的修改,都在這一層中進(jìn)行,不影響已經(jīng)存在的層。比如在容器中刪除一個(gè)1G的文件,從用戶的角度看,容器中該文件已經(jīng)沒(méi)有了,但從文件系統(tǒng)的角度看,文件其實(shí)還在,只不過(guò)在頂層中標(biāo)記該文件已被刪除,當(dāng)然這個(gè)標(biāo)記為已刪除的文件還會(huì)占用鏡像空間。從容器構(gòu)建鏡像,實(shí)際上是把容器的頂層固化到鏡像中。

也就是說(shuō), 對(duì)容器鏡像進(jìn)行修改后,生成新的容器鏡像,會(huì)多一層,而且鏡像的體積只會(huì)增大,不會(huì)減小。長(zhǎng)此以往,鏡像將變得越來(lái)越臃腫。Docker提供的 export 和 import 命令可以一定程度上處理該問(wèn)題,但也并不是沒(méi)有缺點(diǎn)。

3.容器鏡像依賴的父鏡像變化時(shí),容器鏡像必須進(jìn)行重新構(gòu)建。如果沒(méi)有編寫自動(dòng)化構(gòu)建腳本,而是手工構(gòu)建的,那么又要重新修改容器的文件系統(tǒng),再進(jìn)行構(gòu)建,這些重復(fù)勞動(dòng)其實(shí)是沒(méi)有價(jià)值的。

4.Dockerfile鏡像是完全透明的,所有用于構(gòu)建鏡像的指令都可以通過(guò)Dockerfile看到。甚至你還可以遞歸找到本鏡像的任何父鏡像的構(gòu)建指令。也就是說(shuō),你可以完全了解一個(gè)鏡像是如何從零開(kāi)始,通過(guò)一條條指令構(gòu)建出來(lái)的。

5.Dockerfile鏡像需要修改時(shí),可以通過(guò)修改Dockerfile中的指令,再重新構(gòu)建生成,沒(méi)有任何問(wèn)題。

6.Dockerfile可以在GitHub等源碼管理網(wǎng)站上進(jìn)行托管,DockerHub自動(dòng)關(guān)聯(lián)源碼進(jìn)行構(gòu)建。當(dāng)你的Dockerfile變動(dòng),或者依賴的父鏡像變動(dòng),都會(huì)觸發(fā)鏡像的自動(dòng)構(gòu)建,非常方便。

** 不管是官方還是我個(gè)人,都推薦使用第二種方式構(gòu)建鏡像。**

關(guān)于Dockerfile里面指令的詳細(xì)說(shuō)明,這里就不一一列出了,大家可以參考官方文檔,或關(guān)注我之后的文章,當(dāng)然網(wǎng)上也是一搜一大堆。

關(guān)鍵字:鏡像CommitGitHub

本文摘自:博客園

x 關(guān)于Docker里面的幾個(gè)主要概念 掃一掃
分享本文到朋友圈
當(dāng)前位置:云計(jì)算行業(yè)動(dòng)態(tài) → 正文

關(guān)于Docker里面的幾個(gè)主要概念

責(zé)任編輯:editor005 作者:dfengwei |來(lái)源:企業(yè)網(wǎng)D1Net  2017-07-14 14:39:54 本文摘自:博客園

  這里用個(gè)不太恰當(dāng)?shù)谋确絹?lái)說(shuō)明。

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

兩種方式構(gòu)建鏡像的主要步驟:

1.從容器構(gòu)建鏡像(以下簡(jiǎn)稱容器鏡像)

創(chuàng)建一個(gè)容器,比如使用 tomcat:latest 鏡像創(chuàng)建一個(gè)tomcat-test容器

修改tomcat-test容器的文件系統(tǒng),比如修改tomcat的server.xml文件中的默認(rèn)端口

使用commit命令提交鏡像

2.使用Dockerfile構(gòu)建鏡像(以下簡(jiǎn)稱Dockerfile鏡像)

編寫Dockerfile文件

使用build命令構(gòu)建鏡像

兩種構(gòu)建方式的區(qū)別:

1.容器鏡像的構(gòu)建者可以任意修改容器的文件系統(tǒng)后進(jìn)行發(fā)布,這種修改對(duì)于鏡像使用者來(lái)說(shuō)是不透明的,鏡像構(gòu)建者一般也不會(huì)將對(duì)容器文件系統(tǒng)的每一步修改,記錄進(jìn)文檔中,供鏡像使用者參考。

2.容器鏡像不能(更準(zhǔn)確地說(shuō)是不建議)通過(guò)修改,生成新的容器鏡像。

從鏡像運(yùn)行容器,實(shí)際上是在鏡像頂部上加了一層可寫層,所有對(duì)容器文件系統(tǒng)的修改,都在這一層中進(jìn)行,不影響已經(jīng)存在的層。比如在容器中刪除一個(gè)1G的文件,從用戶的角度看,容器中該文件已經(jīng)沒(méi)有了,但從文件系統(tǒng)的角度看,文件其實(shí)還在,只不過(guò)在頂層中標(biāo)記該文件已被刪除,當(dāng)然這個(gè)標(biāo)記為已刪除的文件還會(huì)占用鏡像空間。從容器構(gòu)建鏡像,實(shí)際上是把容器的頂層固化到鏡像中。

也就是說(shuō), 對(duì)容器鏡像進(jìn)行修改后,生成新的容器鏡像,會(huì)多一層,而且鏡像的體積只會(huì)增大,不會(huì)減小。長(zhǎng)此以往,鏡像將變得越來(lái)越臃腫。Docker提供的 export 和 import 命令可以一定程度上處理該問(wèn)題,但也并不是沒(méi)有缺點(diǎn)。

3.容器鏡像依賴的父鏡像變化時(shí),容器鏡像必須進(jìn)行重新構(gòu)建。如果沒(méi)有編寫自動(dòng)化構(gòu)建腳本,而是手工構(gòu)建的,那么又要重新修改容器的文件系統(tǒng),再進(jìn)行構(gòu)建,這些重復(fù)勞動(dòng)其實(shí)是沒(méi)有價(jià)值的。

4.Dockerfile鏡像是完全透明的,所有用于構(gòu)建鏡像的指令都可以通過(guò)Dockerfile看到。甚至你還可以遞歸找到本鏡像的任何父鏡像的構(gòu)建指令。也就是說(shuō),你可以完全了解一個(gè)鏡像是如何從零開(kāi)始,通過(guò)一條條指令構(gòu)建出來(lái)的。

5.Dockerfile鏡像需要修改時(shí),可以通過(guò)修改Dockerfile中的指令,再重新構(gòu)建生成,沒(méi)有任何問(wèn)題。

6.Dockerfile可以在GitHub等源碼管理網(wǎng)站上進(jìn)行托管,DockerHub自動(dòng)關(guān)聯(lián)源碼進(jìn)行構(gòu)建。當(dāng)你的Dockerfile變動(dòng),或者依賴的父鏡像變動(dòng),都會(huì)觸發(fā)鏡像的自動(dòng)構(gòu)建,非常方便。

** 不管是官方還是我個(gè)人,都推薦使用第二種方式構(gòu)建鏡像。**

關(guān)于Dockerfile里面指令的詳細(xì)說(shuō)明,這里就不一一列出了,大家可以參考官方文檔,或關(guān)注我之后的文章,當(dāng)然網(wǎng)上也是一搜一大堆。

關(guān)鍵字:鏡像CommitGitHub

本文摘自:博客園

電子周刊
回到頂部

關(guān)于我們聯(lián)系我們版權(quán)聲明隱私條款廣告服務(wù)友情鏈接投稿中心招賢納士

企業(yè)網(wǎng)版權(quán)所有 ©2010-2024 京ICP備09108050號(hào)-6 京公網(wǎng)安備 11010502049343號(hào)

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 通化市| 宜春市| 寿光市| 陵水| 大厂| 遂溪县| 开原市| 新绛县| 茶陵县| 桃园市| 榆中县| 宜宾市| 会理县| 台山市| 益阳市| 霞浦县| 泰州市| 昌黎县| 曲麻莱县| 六枝特区| 长兴县| 桂林市| 西安市| 杨浦区| 澄江县| 马山县| 西昌市| 阿克苏市| 封丘县| 平江县| 浠水县| 玛曲县| 乌鲁木齐市| 锦屏县| 安多县| 莆田市| 渝中区| 汽车| 新泰市| 冕宁县| 玛曲县|