Docker 构建缓存
目录
当您多次构建相同的 Docker 镜像时,了解如何优化 构建缓存是确保构建快速运行的绝佳工具。
构建缓存的工作原理
了解 Docker 的构建缓存有助于您编写更好的 Dockerfile,这些 从而加快构建速度。
以下示例显示了一个用 C 语言编写的程序的小型 Dockerfile。
# syntax=docker/dockerfile:1
FROM ubuntu:latest
RUN apt-get update && apt-get install -y build-essentials
COPY main.c Makefile /src/
WORKDIR /src/
RUN make build
此 Dockerfile 中的每个指令都会转换为最终镜像中的一个层。 您可以将镜像图层视为一个堆栈,每个图层都会添加更多内容 在它之前的层之上:
每当图层发生变化时,都需要重新构建该图层。例如
假设您对文件中的程序进行了更改。在此之后
change 时,该命令必须再次运行,以便对
显示在镜像中。换句话说,Docker 将使 this 的缓存失效
层。main.c
COPY
如果图层发生更改,则其之后的所有其他图层也会受到影响。什么时候
带有该命令的图层将失效,所有后续图层都将失效
也需要再次运行:COPY
简而言之,这就是 Docker 构建缓存。一旦图层发生变化,那么所有 下游图层也需要重新构建。即使他们不会建造 任何不同的东西,他们仍然需要重新运行。
其他资源
有关使用 cache 执行高效构建的更多信息,请参阅: