亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Docker鏡像構(gòu)建的兩種方法解析

 更新時(shí)間:2017年07月10日 11:29:18   作者:dfengwei  
這篇文章主要為大家詳細(xì)介紹了Docker鏡像構(gòu)建的兩種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

這里用個(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鏡像
編寫(xiě)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í)際上是在鏡像頂部上加了一層可寫(xiě)層,所有對(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)有編寫(xiě)自動(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)上也是一搜一大堆。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Dockerfile文件詳解

    Dockerfile文件詳解

    Dockerfile是一個(gè)用來(lái)構(gòu)建鏡像的文本文件,文本內(nèi)容包含一條條構(gòu)建鏡像所需的指令和說(shuō)明。本文詳細(xì)講解了Dockerfile文件,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • chatgpt-web之docker打包流程

    chatgpt-web之docker打包流程

    這篇文章主要介紹了chatgpt-web中docker的打包流程,文中有詳細(xì)的代碼示例,對(duì)學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-05-05
  • Docker部署nginx+php環(huán)境的全過(guò)程(簡(jiǎn)單可用!)

    Docker部署nginx+php環(huán)境的全過(guò)程(簡(jiǎn)單可用!)

    最近在學(xué)docker,順便配置了一下docker中的nginx與php,發(fā)現(xiàn)網(wǎng)上的關(guān)于docker中配置nginx與php的資料很少,而且有的也很舊,沒(méi)有太多的參考性,下面這篇文章主要給大家介紹了關(guān)于Docker部署nginx+php環(huán)境的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • docker部署springboot項(xiàng)目啟動(dòng)時(shí)間與宿主機(jī)相差8小時(shí)的解決

    docker部署springboot項(xiàng)目啟動(dòng)時(shí)間與宿主機(jī)相差8小時(shí)的解決

    項(xiàng)目部署到docker環(huán)境,數(shù)據(jù)庫(kù)中的時(shí)間總是少8個(gè)小時(shí),本文就來(lái)介紹一下解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • docker容器數(shù)據(jù)卷之具名掛載和匿名掛載問(wèn)題

    docker容器數(shù)據(jù)卷之具名掛載和匿名掛載問(wèn)題

    容器數(shù)據(jù)卷就是目錄的掛載,將我們的容器的目錄掛載到宿主機(jī)上,從而實(shí)現(xiàn)打通宿主機(jī)和容器之間的文件共享功能,這篇文章主要介紹了docker容器數(shù)據(jù)卷 - 具名掛載和匿名掛載問(wèn)題,需要的朋友可以參考下
    2021-11-11
  • Dockerfile制作鏡像的常用指令詳解

    Dockerfile制作鏡像的常用指令詳解

    這篇文章主要介紹了Dockerfile制作鏡像的常用指令,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • 詳解Docker學(xué)習(xí)之用commit命令創(chuàng)建鏡像

    詳解Docker學(xué)習(xí)之用commit命令創(chuàng)建鏡像

    這篇文章主要介紹了詳解Docker學(xué)習(xí)之用commit命令創(chuàng)建鏡像,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • 如何在docker中運(yùn)行springboot項(xiàng)目過(guò)程圖解

    如何在docker中運(yùn)行springboot項(xiàng)目過(guò)程圖解

    這篇文章主要介紹了如何在docker中運(yùn)行springboot項(xiàng)目過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • docker push遇到unknown blob問(wèn)題解決

    docker push遇到unknown blob問(wèn)題解決

    這篇文章主要為大家介紹了docker push遇到unknown blob問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 為運(yùn)行中的docker容器設(shè)置時(shí)區(qū)

    為運(yùn)行中的docker容器設(shè)置時(shí)區(qū)

    本文主要介紹了為運(yùn)行中的docker容器設(shè)置時(shí)區(qū),主要介紹了2種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05

最新評(píng)論