最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker?鏡像分層及dockerfile?編寫技巧

 更新時間:2022年01月17日 11:59:01   作者:一只小毛驢?呀  
Docker鏡像是由特殊的文件系統(tǒng)疊加而成,鏡像層是不可變的,如果在某一層中添加一個文件,然后在下一層中刪除它,則鏡像中依然會包含該文件,這篇文章主要介紹了Docker?鏡像分層及dockerfile?編寫,需要的朋友可以參考下

docker鏡像分層

分層介紹

Dockerfile中的每個指令都會創(chuàng)建一個新的鏡像層

鏡像層將被緩存和復(fù)用

當Dockerfile的指令修改了,復(fù)制的文件變化了,或者構(gòu)建鏡像時指定的變量不同了,對應(yīng)的鏡像層緩存就會失效

某一層的鏡像緩存失效之后,它之后的鏡像層緩存都會失效

鏡像層是不可變的,如果在某一層中添加一個文件,然后在下一層中刪除它,則鏡像中依然會包含該文件

Docker鏡像原理

  • Docker鏡像是由特殊的文件系統(tǒng)疊加而成
  • ·最底端是bootfs,并使用宿主機的bootfs
  • ·第二層是root文件系統(tǒng)rootfs,稱為base image
  • ·然后再往上可以疊加其他的鏡像文件
  • ·統(tǒng)一文件系統(tǒng)(Union File System)技術(shù)能夠?qū)⒉煌膶诱铣梢粋€文件系統(tǒng),為這些層提供了 一個統(tǒng)一的視角,這樣就隱藏了多層的存在,在用戶的角度看來,只存在一個文件系統(tǒng)。
  • ·一個鏡像可以放在另一個鏡像的上面。位于下面的鏡像稱為父鏡像,最底部的鏡像成為基礎(chǔ)鏡像。
  • ·當從一個鏡像啟動容器時,Docker會在最頂層加載一個讀寫文件系統(tǒng)作為容器。

1.base image:基礎(chǔ)鏡像
2.image:固化了一個標準運行環(huán)境,鏡像本身的功能-封裝一組功能性的文件,通過統(tǒng)一的方式,文件格式提供出來(只讀)
3.container:容器層(讀寫)
4.docker-server 端
5.呈現(xiàn)給docker-client (視圖)

鏡像分層模型 

 dockerfile 編寫

dockerfile操作指令

序號指令含義
1FROM 鏡像指定新鏡像所基于的鏡像,第 條指必須為from指令,每創(chuàng)建一個鏡像就需要一條from指令
2MAINTAINER 名字說明新鏡像的維護人信息
3RUN 命令在所基于的鏡像上執(zhí)行命令,并提交到新的鏡像中;docker內(nèi)每執(zhí)行一條命令都是run開頭
4CMD["要運行的程序","參數(shù)1","參數(shù)2"]指令啟動容器時要運行的命令或者腳本,Dockerfile只能有一條CMD命令, 如果指定多條則只能最后一條被執(zhí)行
5EXPOSE 端口號指定新鏡像加載到Docker時要開啟的端口
6ENV 環(huán)境變量 變量值設(shè)置一個環(huán)境變量的值,會被后面的run使用
7ADD 源文件、目錄 目標文件/目錄具體識別壓縮格式并且自動解壓,將源文件復(fù)制到目標文件,源文件要與dockerfile位于相同目錄中,或者一個URL
8COPY 源文件/目錄 目標文件/目錄將本地主機上的文件/目錄復(fù)制到目標地點,源文件/目錄要與Dockerfile在相同的目錄中
9VOLUME ["目錄"]在容器中創(chuàng)建一個掛載點
10USER 用戶名/UID指定運行容器時的用戶
11WORKDIR 路徑為后續(xù)的RUN、CMD、ENTRYPOINT指定工作目錄
12ONBUILD 命令指定所生成的鏡像作為一個基礎(chǔ)鏡像時所要運行的命令
13HEALTHCHECK健康檢查

ADD和copy區(qū)別

              ①Dockerfile中的COPY指令和ADD指令都可以將主機上的資源復(fù)制或加入到容器鏡像中,都是在構(gòu)建鏡像的過程中完成的
              ②copy只能用于復(fù)制(節(jié)省資源)
              ③ADD復(fù)制的同時,如果復(fù)制的對象時壓縮包,ADD還可以解壓(消耗資源)
              ④COPY指令和ADD指令的唯一區(qū)別在于是否支持從遠程URL獲取資源。COPY指令只能從執(zhí)行docker build所在的主機上讀取資源并復(fù)制到鏡像中。而ADD指令還支持通過URL從遠程服務(wù)器讀取資源并復(fù)制到鏡像中
              ⑤滿足同等功能的情況下,推薦使用COPY指令。ADD指令更擅長讀取本地tar文件并解壓縮

CMD和entrypoint區(qū)別

   一般還是會用entrypoint的中括號形式作為docker 容器啟動以后的默認執(zhí)行命令,里面放的是不變的部分,可變部分比如命令參數(shù)可以使用cmd的形式提供默認版本,也就是run里面沒有任何參數(shù)時使用的默認參數(shù)。如果我們想用默認參數(shù),就直接run,否則想用其他參數(shù),就run 里面加參數(shù)。

嘗試編寫dockerfile文件 部署nginx


mkdir nginx
cd nginx/
vim Dockerfile 
 
FROM centos:7      #基于基礎(chǔ)鏡像
MAINTAINER nginx   #用戶信息
RUN yum -y update   #安裝依賴關(guān)系
RUN yum install -y pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx                     #創(chuàng)建用戶
ADD nginx-1.12.0.tar.gz /usr/local/src                    #將源文件復(fù)制到目標文件,源文件要與 
                                                            Dockerfile位于相同目錄中,或者是 
                                                             一個URL
 
VOLUME ["/usr/local/nginx/html"]                        #在容器中創(chuàng)建一個掛載點
WORKDIR /usr/local/src                                  #指定工作目錄
WORKDIR nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80                                                   #暴露端口
RUN echo "demon off;" >>/usr/local/nginx/conf/nginx.conf
CMD nginx

docker運行nginx為什么要使用 daemon off

docker運行nginx為什么要使用 daemon off

到此這篇關(guān)于Docker 鏡像分層及dockerfile 編寫的文章就介紹到這了,更多相關(guān)Docker 鏡像分層內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker中數(shù)據(jù)卷(volume)管理的兩種方式

    Docker中數(shù)據(jù)卷(volume)管理的兩種方式

    數(shù)據(jù)卷有兩種形式,一種是容器中的某個目錄,它可以被別的容器引用,只要有一個容器引用了這個數(shù)據(jù)卷,數(shù)據(jù)就不會被刪除;另一種數(shù)據(jù)卷是將容器中的數(shù)據(jù)卷和宿主機的目錄進行掛載。 數(shù)據(jù)卷可以在多個容器之間共享,修改數(shù)據(jù)卷不會影響鏡像
    2021-07-07
  • 部署OceanBase-ce全過程

    部署OceanBase-ce全過程

    這篇文章主要介紹了部署OceanBase-ce全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Docker安裝部署完全流程使用指南(Linux通用版)

    Docker安裝部署完全流程使用指南(Linux通用版)

    Docker?是一種流行的開源容器化平臺,它能夠?qū)?yīng)用程序及其依賴打包進輕量級、可移植的容器中運行,這篇文章主要介紹了Linux系統(tǒng)下Docker安裝部署完全流程使用指南,需要的朋友可以參考下
    2026-04-04
  • docker中的volume和bind?mount區(qū)別講解

    docker中的volume和bind?mount區(qū)別講解

    這篇文章主要介紹了docker的volume和bind?mount區(qū)別,介紹了volume?相對于bind?mount的優(yōu)點及volume操作,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • Docker鏡像的導(dǎo)入導(dǎo)出的實現(xiàn)方法

    Docker鏡像的導(dǎo)入導(dǎo)出的實現(xiàn)方法

    這篇文章主要介紹了Docker鏡像的導(dǎo)入導(dǎo)出的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • docker-compose部署配置jenkins的詳細教程

    docker-compose部署配置jenkins的詳細教程

    這篇文章主要介紹了docker-compose部署配置jenkins的詳細教程,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Docker 限制容器的 Block IO使用

    Docker 限制容器的 Block IO使用

    本篇文章主要介紹了Docker 限制容器的 Block IO使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-08-08
  • 解決使用Docker Compose管理容器的問題

    解決使用Docker Compose管理容器的問題

    在Docker Compose中,根據(jù)一個配置文件,將所有與應(yīng)用系統(tǒng)相關(guān)的應(yīng)用和對應(yīng)的容器進行配置,再根據(jù)Docker Compose提供的命令進行啟動,就可以解決上面說的多容器之間的復(fù)雜問題,感興趣的朋友跟隨小編一起看看吧
    2021-09-09
  • Docker部署前后端的實現(xiàn)步驟

    Docker部署前后端的實現(xiàn)步驟

    本文主要介紹了Docker部署前后端的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-04-04
  • 親手教你Docker Compose安裝DOClever的詳細過程

    親手教你Docker Compose安裝DOClever的詳細過程

    DOClever是一個可視化免費開源的接口管理工具,DOClever前后端全部采用了javascript來作為我們的開發(fā)語言。這篇文章主要介紹了Docker Compose安裝DOClever的詳細過程,需要的朋友可以參考下
    2021-09-09

最新評論

鄢陵县| 洛阳市| 衡南县| 江陵县| 江陵县| 阿拉善左旗| 会同县| 福鼎市| 维西| 天全县| 安庆市| 榕江县| 定州市| 饶河县| 南丰县| 金乡县| 阳朔县| 石渠县| 辛集市| 同心县| 革吉县| 台中县| 广德县| 庆安县| 绥芬河市| 霞浦县| 大港区| 长武县| 会东县| 荥阳市| 乌拉特中旗| 奉节县| 许昌市| 巴马| 皮山县| 马山县| 开原市| 阳朔县| 二连浩特市| 论坛| 湘西|