学习优先级:★★★★☆

易用性:★★★☆☆

缓存是 Docker 中的一个重要机制,它允许重用已构建的镜像层,从而缩短构建时间。

以下是一个示例,展示了如何在 Dockerfile 中使用缓存。

示例代码

# 使用基础镜像
FROM node:14

# 创建工作目录
WORKDIR /app

# 安装依赖
COPY package.json ./
RUN npm install

# 复制源代码
COPY . .

# 启动应用
CMD ["node", "app.js"]

执行结果

此 Dockerfile 的构建过程中,Docker 会缓存每一层。如果 package.json 文件未更改,npm install 命令将不会重新执行,因为缓存仍然有效。这意味着在多次构建中,依赖项的安装速度更快,因为无需重新下载。

补充说明

Docker 会缓存镜像层。如果在 RUN 指令之后更改了文件,可能会导致缓存失效。优化 Dockerfile 可以进一步减少构建时间。例如,将构建步骤拆分为多个层,或先执行依赖安装,再复制源代码。这样可以确保只有在必要时才重新构建特定层。