自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Docker鏡像分層的注意點(diǎn)

開發(fā) 開發(fā)工具
通常我們?cè)趯?duì)程序進(jìn)行Docker鏡像打包的時(shí)候總會(huì)有些困惑,到底是將最終的鏡像分層打包最后匯總成程序的鏡像(也就是一層一層的From)合適,還是說(shuō)直接將程序從Source code就打包出最終的鏡像更合適呢?其實(shí)這里面沒(méi)有說(shuō)那個(gè)是對(duì)或錯(cuò)的,要看程序包自身的情況做選擇。

[[186009]]

Docker鏡像打包程序的困惑

通常我們?cè)趯?duì)程序進(jìn)行Docker鏡像打包的時(shí)候總會(huì)有些困惑,到底是將最終的鏡像分層打包***匯總成程序的鏡像(也就是一層一層的From)合適,還是說(shuō)直接將程序從Source code就打包出最終的鏡像更合適呢?其實(shí)這里面沒(méi)有說(shuō)那個(gè)是對(duì)或錯(cuò)的,要看程序包自身的情況做選擇。

Docker build的注意點(diǎn)

如果接觸過(guò)Docker,Docker build大家都清楚怎么用了,但是有幾個(gè)容易忽略的注意點(diǎn):

  • Dockerfile開頭的From和MAINTAINER其實(shí)都是一層鏡像
  • 如果From和MAINTAINER不同,就算是后面的命令語(yǔ)句相同也不會(huì)是相同的鏡像。如都是執(zhí)行RUN echo "hello world" >> test.txt,如果MAINTAINER不同,則生成的這個(gè)語(yǔ)句的鏡像層將是不同的。
  • 原理上如果每一層對(duì)應(yīng)的父層不同,那怕執(zhí)行的命令相同,Docker也會(huì)生成一層新的鏡像,如下面兩個(gè)Dockerfile文件

Dockerfile 1:

  1. FROM centos:latest 
  2. MAINTAINER duffqiu@gmail.com 
  3. RUN echo "test" >> hello.txt 
  4. RUN echo "hello" > test.txt 

Dockerfile 2:

  1. FROM centos:latest 
  2. MAINTAINER duffqiu@gmail.com 
  3. RUN echo "hello" > test.txt 
  4. RUN echo "test" >> hello.txt 

這兩個(gè)文件的內(nèi)容只是兩個(gè)RUN語(yǔ)句順序不一樣,但是***它們生成的image層是不一樣的,可以通過(guò)docker history <image name>來(lái)對(duì)比

  • 從這里面也看到一個(gè)問(wèn)題,F(xiàn)rom***不要用lastest標(biāo)簽,避免不同鏡像的頂層是不同,從而無(wú)法復(fù)用。

實(shí)踐建議

需要看具體情況,如果有一個(gè)包是公用的,且比較大,則***先將這個(gè)包打成Image再給后續(xù)的程序打包使用,這樣使用時(shí)占用的機(jī)器磁盤空間最小,啟動(dòng)時(shí)如果需要pull的話也最快。

但是如果包本身就是很小,過(guò)細(xì)的分層也不利于維護(hù)和管理,所以最終還是一個(gè)藝術(shù)問(wèn)題。

【本文是51CTO專欄作者“VIPDOCKER-了哥 ”的原創(chuàng)文章,如需轉(zhuǎn)載請(qǐng)通過(guò)51CTO與作者聯(lián)系】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來(lái)源: 51CTO專欄
相關(guān)推薦

2015-08-26 11:27:26

DockerDeviceMappe分層鏡像

2012-11-20 09:24:45

路由器端口鏡像

2010-08-31 16:39:56

2022-05-26 08:31:41

分層機(jī)制優(yōu)化

2019-07-16 14:44:52

DockerMySQL操作系統(tǒng)

2017-10-12 10:28:48

Docker鏡像存儲(chǔ)

2023-04-19 08:07:24

接口文檔設(shè)計(jì)

2023-09-10 07:20:35

2020-12-02 06:14:35

秒殺系統(tǒng)

2020-08-13 07:24:27

IP地址網(wǎng)絡(luò)協(xié)議網(wǎng)絡(luò)

2013-04-25 10:01:35

Nginx

2018-11-15 10:04:02

機(jī)柜方法布線

2019-06-23 16:02:12

Kubernetes集群節(jié)點(diǎn)高并發(fā)

2021-07-30 09:00:40

鴻蒙HarmonyOS應(yīng)用

2014-12-15 09:16:10

DockerDaoCloud鏡像部署

2009-07-16 09:25:27

Java常量定義

2010-04-29 12:32:30

Unix服務(wù)器

2011-04-28 11:13:02

2015-10-08 09:28:47

JavaDocker鏡像

2021-09-02 07:04:45

Docker鏡像語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)