【Docker】docker build高效利用cache

本文探讨了如何在Dockerfile构建过程中有效利用缓存,包括通过调整指令顺序、使用LABEL或MAINTAINER指令以及禁用缓存等方法,以提高镜像构建效率。

# 前言

Dockerfile 可以通过docker build命令构建为一个新的镜像,Dockerfile 中每一条命令都会构建出一个新的镜像层。当你重新build相同的Docker时,Docker会逐条语句check自身的cache镜像层,如果命中相同的,就使用cache而不执行这条语句继续往下逐条check直至build完成。Docker build cache相关知识可以参考docker build 的 cache 机制

本文主要讲述如何利用cache提高build的效率。

# 正文

1. build Dockerfile 部分使用 cache

目前 docker 利用 cache 的基本原理是在父节点存在 cache 的前提下,当前 dockerfile 的那条语句之前也构建过就可以用 cache。例外就是 ADD 和 COPY 需要计算一个 checksum。 大致意思就是如果你中间有一层不能用 cache 那之后的层次就都不能用了。因此主要功夫在写 dockerfile 上,尽量把不变的内容放在前面,频繁变化的内容放在最后。简单说就是 把 ADD 和 COPY 的内容放最后一句,这样很多情况下只有最后一层变,前面都能用 cache。 比如我们在Dockerfile中使用了RUN go get xxx,我们提交了一下最新代码,然后重新build时,会命中cache,导致build出的image使用的还是之前的代码。

▶ docker build -t="jeorch/ddsaas:1.0.1" ./
Sending build context to Docker daemon  266.2kB
Step 1/8 : FROM golang:alpine
 ---> 20ff4d6283c0
Step 2/8 : RUN apk add --no-cach
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值