欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          docker鏡像應(yīng)該遵循哪些原則

          docker鏡像應(yīng)該遵循的原則:1、鏡像最小化原則;需要選擇最精簡(jiǎn)的基礎(chǔ)鏡像、清理鏡像構(gòu)建的中間產(chǎn)物、減少鏡像的層數(shù)。2、構(gòu)建速度最快化原則;充分利用鏡像構(gòu)建緩存,再利用構(gòu)建的緩存來加快鏡像構(gòu)建速度。3、注意優(yōu)化網(wǎng)絡(luò)請(qǐng)求。

          docker鏡像應(yīng)該遵循哪些原則

          本教程操作環(huán)境:linux5.9.8系統(tǒng)、docker-1.13.1版、Dell G3電腦。

          1.為什么要做鏡像優(yōu)化?

          隨著我們對(duì)docker鏡像的持續(xù)使用,在此過程中如果不加以注意并且優(yōu)化,鏡像的體積會(huì)越來越大
          很多時(shí)候我們?cè)谑褂胐ocker部署應(yīng)用時(shí),會(huì)發(fā)現(xiàn)鏡像的體積至少有1G以上
          鏡像體積的增大,不單單會(huì)增加磁盤資源與網(wǎng)絡(luò)資源的開銷,也會(huì)影響應(yīng)用的部署效率,使得應(yīng)用的部署時(shí)間會(huì)越來越長(zhǎng)
          因此我們需要減少部署鏡像的體積以加快部署效率,降低資源的開銷
          而對(duì)于鏡像的優(yōu)化,可以通過對(duì)dockerfile的優(yōu)化來實(shí)現(xiàn)

          2.構(gòu)建鏡像的幾個(gè)原則

          (1)鏡像最小化原則

          選擇最精簡(jiǎn)的基礎(chǔ)鏡像

          選擇體積最小的基礎(chǔ)鏡像可有效降低鏡像體積。如:alpine、busybox等.

          清理鏡像構(gòu)建的中間產(chǎn)物

          構(gòu)建鏡像的過程中,當(dāng)dockerfile的指令執(zhí)行完成后,刪除鏡像不需要用的的文件。

          如使用yum安裝組件,最后可使用yum clean all鏡像清理不需要的文件或者使用系統(tǒng)rm命令刪除不需要的源文件等。

          減少鏡像的層數(shù)

          鏡像是一個(gè)分層存儲(chǔ)的文件,并且鏡像對(duì)層數(shù)也是有一定數(shù)量的限制,當(dāng)前鏡像的層數(shù)最高是127層,

          如果不多加注意,將會(huì)導(dǎo)致鏡像越來越臃腫。

          在使用dockerfile構(gòu)建鏡像時(shí),dockerfile中的每一條指令都會(huì)生成一個(gè)層,

          因此可以通過合并dockerfile中可合并的指令,減少最終生成鏡像的層數(shù)。

          例如:在dockerfile中使用RUN執(zhí)行shell命令是,可以用"&&"將多條命令連接起來

          采用最最基礎(chǔ)的鏡像

          鏡像越小越精簡(jiǎn)

          (2)構(gòu)建速度最快化原則

          充分利用鏡像構(gòu)建緩存

          我們可以利用構(gòu)建的緩存來加快鏡像構(gòu)建速度,Docker構(gòu)建默認(rèn)會(huì)開啟緩存,緩存生效有三個(gè)關(guān)鍵點(diǎn),

          鏡像父層沒有發(fā)生變化,構(gòu)建指令不變,添加文件校驗(yàn)和一致。

          只要一個(gè)構(gòu)建指令滿足這三個(gè)條件,這一層鏡像構(gòu)建就不會(huì)再執(zhí)行,它會(huì)直接利用之前構(gòu)建的結(jié)果。

          某一層的鏡像緩存失效之后,它之后的鏡像層緩存都會(huì)失效。

          我們應(yīng)該把變化最少的部分放在Dockerfile的前面,這樣可以充分利用鏡像緩存。

          dockerfile中有可能導(dǎo)致緩存失效的命令WORKDIR、CMD、ENV、ADD等,

          像這些命令最好放到dockerfile底部,以便在構(gòu)建鏡像過程中最大限度使用緩存。

          刪除構(gòu)建目錄中(默認(rèn):Dockerfile所在目錄)不需要用的的文件

          編寫.dockerignore文件過濾構(gòu)建過程中不必要的文件或者創(chuàng)建單獨(dú)的目錄,并且目錄中僅存在鏡像構(gòu)建過程中需要使用的文件。

          Docker 在運(yùn)行時(shí)分為 Docker 引擎(也就是服務(wù)端守護(hù)進(jìn)程)和客戶端工具。

          Docker 的引擎提供了一組 REST API,被稱為 Docker Remote API,

          而如 docker 命令這樣的客戶端工具,則是通過這組 API 與 Docker 引擎交互,從而完成各種功能。

          因此,雖然表面上我們好像是在本機(jī)執(zhí)行各種 docker 功能,但實(shí)際上,一切都是使用的遠(yuǎn)程調(diào)用形式在服務(wù)端(Docker 引擎)完成。docker build 命令構(gòu)建鏡像,其實(shí)并非在本地構(gòu)建,而是在服務(wù)端,也就是 Docker 引擎中構(gòu)建的。

          構(gòu)建鏡像時(shí),Docker需要先準(zhǔn)備context ,將所有需要的文件收集到進(jìn)程中。

          默認(rèn)的context包含Dockerfile目錄中的所有文件。

          (3)注意優(yōu)化網(wǎng)絡(luò)請(qǐng)求

          我們使用一些鏡像源或者在dockerfile中使用互聯(lián)網(wǎng)上的url時(shí),

          去用一些網(wǎng)絡(luò)比較好的開源站點(diǎn),這樣可以節(jié)約時(shí)間、減少失敗率。

          3.在虛擬機(jī)模擬源碼編譯nginx

          選擇最精簡(jiǎn)的基礎(chǔ)鏡像 減少鏡像的層數(shù) 清理鏡像構(gòu)建的中間產(chǎn)物 注意優(yōu)化網(wǎng)絡(luò)請(qǐng)求 盡量去用構(gòu)建緩存

          啟動(dòng)docker

          docker鏡像應(yīng)該遵循哪些原則
          查看鏡像并刪除無用的鏡像
          docker鏡像應(yīng)該遵循哪些原則

          docker鏡像應(yīng)該遵循哪些原則

          docker鏡像應(yīng)該遵循哪些原則
          先源碼編譯nginx,熟悉步驟后好在容器中運(yùn)行nginx

          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則

          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          關(guān)閉debug
          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則

          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          查看執(zhí)行命令
          docker鏡像應(yīng)該遵循哪些原則

          4.鏡像的優(yōu)化

          階段構(gòu)建鏡像接下來我們以rhel7鏡像構(gòu)建容器,并在容器中安裝nginx的源碼包。以此容器構(gòu)建新的鏡像并做做優(yōu)
          (1)在真機(jī)上面給server1傳兩個(gè)包

          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則

          docker鏡像應(yīng)該遵循哪些原則

          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          優(yōu)化思路:將RUN都放在一行,減少鏡像層數(shù)
          編寫Dockerfile如下

          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則

          docker鏡像應(yīng)該遵循哪些原則
          優(yōu)化思路:使用多階段構(gòu)建

          Dokcerfile如下:
          先模擬命令行關(guān)閉debug:
          docker鏡像應(yīng)該遵循哪些原則

          docker鏡像應(yīng)該遵循哪些原則

          docker鏡像應(yīng)該遵循哪些原則
          優(yōu)化思路:從底層優(yōu)化

          首先我們需要導(dǎo)入一個(gè)distroless和nginx鏡像 distroless”鏡像只包含應(yīng)用程序及其運(yùn)行時(shí)依賴項(xiàng),不包含程序包管理器、shell以及在標(biāo)準(zhǔn)Linux發(fā)行版中可以找到的任何其他程序 用distroless去除容器中所有不必要的東西

          1)從github網(wǎng)站查看例子:
          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          (2)從真機(jī)給server1發(fā)送東西
          docker鏡像應(yīng)該遵循哪些原則
          (3)導(dǎo)入鏡像

          docker鏡像應(yīng)該遵循哪些原則

          (4)編寫Dockerfile如下
          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          (5)構(gòu)建鏡像并查看鏡像大小

          docker鏡像應(yīng)該遵循哪些原則
          (6)構(gòu)建容器并測(cè)試
          docker鏡像應(yīng)該遵循哪些原則
          查看IP并能正常訪問到Nginx默認(rèn)發(fā)布頁(yè),證明容器鏡像可以正常使用,但只要內(nèi)網(wǎng)可以訪問:

          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          按照查看橋接的工具:
          docker鏡像應(yīng)該遵循哪些原則
          docker鏡像應(yīng)該遵循哪些原則
          查看橋接:
          docker鏡像應(yīng)該遵循哪些原則
          做端口映射docker鏡像應(yīng)該遵循哪些原則
          可以通過外網(wǎng)訪問了:
          docker鏡像應(yīng)該遵循哪些原則

          推薦學(xué)習(xí):《docker視頻教程》

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)