欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Dockerfile有什么用

這篇文章主要講解了“Dockerfile有什么用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Dockerfile有什么用”吧!

創(chuàng)新互聯(lián)是一家專業(yè)提供樺南企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站設(shè)計(jì)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為樺南眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

About Layer Caching  in Docker

Docker使用層layer創(chuàng)建鏡像,Dockerfile中每一個(gè)命令都會(huì)創(chuàng)建一個(gè)新的層,每層都包含執(zhí)行命令前后的狀態(tài)之間鏡像的文件系統(tǒng)更改。
Dockerfile有什么用

為了加快構(gòu)建速度,Docker實(shí)現(xiàn)了緩存:
如果Dockerfile和相關(guān)文件未更改,則重建(rebuild)時(shí)可以重用本地鏡像緩存中的某些現(xiàn)有層。
但是,為了利用此緩存,您需要了解它的工作方式,這就是我們將在本文中介紹的內(nèi)容。

 

The basic algorithm

當(dāng)您構(gòu)建Dockerfile時(shí),Docker將查看它是否可以使用先前構(gòu)建的緩存結(jié)果:

  • 對(duì)于大多數(shù)命令,如果命令文本未更改,則將使用緩存中的版本。
  • 對(duì)于COPY,它還會(huì)檢查您要復(fù)制的文件是否未更改。

我們來看一個(gè)使用以下Dockerfile的示例:

FROM python:3.7-slim-buster
COPY . .
RUN pip install --quiet -r requirements.txt
ENTRYPOINT ["python", "server.py"]
 

第一次運(yùn)行時(shí),所有命令都會(huì)運(yùn)行:

$ docker build -t example1 .
Sending build context to Docker daemon   5.12kB
Step 1/4 : FROM python:3.7-slim-buster
---> f96c28b7013f
Step 2/4 : COPY . .
---> eff791eb839d
Step 3/4 : RUN pip install --quiet -r requirements.txt
---> Running in 591f97f47b6e
Removing intermediate container 591f97f47b6e
---> 02c7cf5a3d9a
Step 4/4 : ENTRYPOINT ["python", "server.py"]
---> Running in e3cf483c3381
Removing intermediate container e3cf483c3381
---> 598b0340cc90
Successfully built 598b0340cc90
Successfully tagged example1:latest
 

第二次構(gòu)建時(shí),因?yàn)闆]有任何改變,docker構(gòu)建將使用鏡像緩存:

$ docker build -t example1 .
Sending build context to Docker daemon   5.12kB
Step 1/4 : FROM python:3.7-slim-buster
---> f96c28b7013f
Step 2/4 : COPY . .
---> Using cache
---> eff791eb839d
Step 3/4 : RUN pip install --quiet -r requirements.txt
---> Using cache
---> 02c7cf5a3d9a
Step 4/4 : ENTRYPOINT ["python", "server.py"]
---> Using cache
---> 598b0340cc90
Successfully built 598b0340cc90
Successfully tagged example1:latest
 

請(qǐng)注意,上面顯示的Using cache加快了構(gòu)建速度(無需從網(wǎng)絡(luò)下載任何pip依賴包)

如果我們刪除鏡像,則后續(xù)構(gòu)建將從頭開始(沒有層緩存了):

$ docker image rm example1
Untagged: example1:latest
Deleted: sha256:598b0340cc90967501c5c51862dc586ca69a01ca465f48232fc457d3ab122a73
Deleted: sha256:02c7cf5a3d9af1939b9f5286312b23898fd3ea12b7cb1d7a77251251740a806c
Deleted: sha256:d9e9602d9c3fd7381a8e1de301dc4345be2eb2b8488b5fc3e190eaacbb2f9596
Deleted: sha256:eff791eb839d00cbf46d139d8595b23867bc580bb9164b90253d0b2d9fcca236
Deleted: sha256:53d34b2ead0a465d229a4260fee2a845fb8551856d4019cd2e608dfe0e039e77
$ docker build -t example1 .
Sending build context to Docker daemon   5.12kB
Step 1/4 : FROM python:3.7-slim-buster
---> f96c28b7013f
Step 2/4 : COPY . .
---> 63c32b9b1af6
...
   

Taking advantage of caching

緩存算法還有一個(gè)更重要的規(guī)則:

  • 如果某層無法應(yīng)用層緩存,則后續(xù)層都不能從層緩存加載

在以下示例中,前后兩次構(gòu)建過程的C層均未更改,盡管如此,由于上層并不是從層緩存中加載,因此后置的C層仍然無法從緩存中加載:

Dockerfile有什么用  

層緩存對(duì)下面的Dockerfile意味著什么?

FROM python:3.7-slim-buster
COPY requirements.txt .
COPY server.py .
RUN pip install --quiet -r requirements.txt
ENTRYPOINT ["python", "server.py"]
 

如果COPY命令的任何文件改變了,則會(huì)使后續(xù)所有層緩存失效:我們需要重新運(yùn)行pip install (這一層若不走緩存,通常耗時(shí)久)。
但是,如果requirements.txt沒有更改& server.py更改了,為什么我們必須重做pip安裝?畢竟,pip安裝僅使用requirements.txt。

“  

推及到現(xiàn)代編程語言:前端的依賴包文件paakcage.json, dotnet的項(xiàng)目管理文件dotnetdemo.csproj等,一般很少變更;隨時(shí)變動(dòng)的業(yè)務(wù)代碼,導(dǎo)致后續(xù)的層緩存失效(后續(xù)層每次都要重新下載&安裝依賴)。

因此,您要做的是僅復(fù)制實(shí)際需要運(yùn)行下一步的那些文件,以最大程度地減少緩存失效的機(jī)會(huì)。

FROM python:3.7-slim-buster
COPY requirements.txt .
RUN pip install --quiet -r requirements.txt
COPY server.py .
ENTRYPOINT ["python", "server.py"]
 

由于server.py僅在pip安裝后才復(fù)制到構(gòu)建上下文,因此,只要requirements.txt不變,仍然可以從緩存加載由上次pip安裝創(chuàng)建的層。

 

Designing your Dockerfile for caching

如果您想通過重用之前緩存的層來進(jìn)行快速構(gòu)建,則需要適當(dāng)?shù)鼐帉慏ockerfile:

  • 僅復(fù)制下一步所需的文件,以最大程度地減少構(gòu)建過程中的緩存失效。
  • 盡量將文件可能變更的新增(ADD命令)、拷貝(COPY命令) 延遲到Dockerfile的后部。

感謝各位的閱讀,以上就是“Dockerfile有什么用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Dockerfile有什么用這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站名稱:Dockerfile有什么用
本文網(wǎng)址:http://aaarwkj.com/article40/jpojho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名電子商務(wù)、小程序開發(fā)關(guān)鍵詞優(yōu)化、網(wǎng)站維護(hù)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
天天操夜夜骑日日干| 国产在线精品成人欧美| 少妇人妻偷人精品系列| 日韩经典三级精品自拍| 国产精品成人av在线| 日本 影院 一区 二区| 国产老熟女高潮精品视频网站免费| 男人自拍天堂在线观看| 久久久久久国产综合精品| 视频免费观看网站不卡| 午夜视频免费在线观看| 大香蕉欧美日韩在线视频| 婷婷丁香六月激情综合| 中文字幕人妻少妇美臀| 国产熟女系列一区二区三区| 91久久一区二区秋霞免费| 日韩一二三区免费不卡视频| 亚洲国产日韩欧美第一页| 91精品人妻一区二区| 91九色视频官网在线观看| 精品视频在线观看传媒| 加勒比av免费在线播放| 国产自拍精品视频免费观看| 亚洲午夜精品毛片成人| 手机在线观看av网站| 黄色av网站在线免费| 精品一区二区日本高清| 亚洲欧美国产成人在线| 91在线视频麻豆国产| 国产成人免费自拍一区| 日韩中文字幕一二一二区| 熟妇一区二区三区av| 日韩久久精品五月综合| 在线欧美日韩一区二区三区| 视频二区国产欧美日韩| 亚洲国产欧美日韩综合| 午夜草草视频在线观看| 高清不卡av在线播放| 亚洲av网站女性向在线观看| 99久久久精品国产免费| 精品一区二区三区毛卡片|