Docker 构建缓存
目录
当你多次构建相同的Docker镜像时,了解如何优化构建缓存是确保构建运行快速的重要工具。
构建缓存的工作原理
理解Docker的构建缓存有助于您编写更好的Dockerfiles,从而实现更快的构建。
以下示例展示了一个用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 buildDockerfile 中的每条指令都会转换为最终镜像中的一个层。 你可以将镜像层想象成一个堆栈,每一层都在前面的层之上添加更多内容:

每当一个层发生变化时,该层将需要重新构建。例如,假设你在main.c文件中对你的程序进行了更改。在此更改之后,COPY命令将必须再次运行,以便这些更改出现在镜像中。换句话说,Docker将使该层的缓存失效。
如果一个层发生变化,它之后的所有其他层也会受到影响。当带有COPY命令的层失效时,所有后续的层也需要重新运行:

简而言之,这就是Docker构建缓存。一旦某一层发生变化,那么所有下游层也需要重新构建。即使它们不会构建出任何不同的内容,它们仍然需要重新运行。
其他资源
有关使用缓存进行高效构建的更多信息,请参阅: