学习优先级:★★★★☆
易用性:★★★☆☆
缓存是 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 可以进一步减少构建时间。例如,将构建步骤拆分为多个层,或先执行依赖安装,再复制源代码。这样可以确保只有在必要时才重新构建特定层。