构建映像时,Docker 会逐步跟进 Dockerfile 执行中的说明,并按照指定的顺序执行每个说明。在检查每条指令时,Docker 会在其缓存中查找可以重用的现有映像,而不是创建新的(重复)映像。

如果您根本不想使用缓存,则可以使用命令--no-cache=true 上的选项docker build。但是,如果您确实让 Docker 使用其缓存,那么了解它什么时候可以,什么时候不能找到匹配的图像很重要。Docker 遵循的基本规则概述如下:

从已经在缓存中的父映像开始,将下一条指令与从该基本映像派生的所有子映像进行比较,以查看其中一个是否是使用完全相同的指令构建的。如果不是,则缓存无效。

在大多数情况下,简单地将 中的指令Dockerfile与子图像之一进行比较就足够了。但是,某些说明需要更多的检查和解释。

对于ADD和COPY指令,检查图像中文件的内容并为每个文件计算校验和。这些校验和不考虑文件的最后修改和最后访问时间。在缓存查找期间,校验和与现有图像中的校验和进行比较。如果文件中有任何更改,例如内容和元数据,则缓存无效。

除了ADDandCOPY命令之外,缓存检查不会查看容器中的文件来确定缓存匹配。例如,在处理RUN apt-get -y update命令时,不会检查容器中更新的文件以确定是否存在缓存命中。在这种情况下,仅使用命令字符串本身来查找匹配项。

一旦缓存失效,所有后续Dockerfile命令都会生成新图像,并且不会使用缓存。

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排 行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2021-04-23 11:53:50
2021-04-23 09:17:44
云技术 云计算核心技术Docker教程:Docker配置网络概述
无论Docker主机是运行Linux,Windows还是两者结合使用,都可以使用Docker以与平台无关的方式管理它们。 <详情>
2021-03-26 09:32:08
云技术 云计算Docker教程:在守护程序停机期间使容器保持活动状态
默认情况下,当Docker守护程序终止时,它将关闭正在运行的容器。您可以配置守护程序,以便在守护程序不可用时容器仍在运行。此功能称为实时还原。实时还原选项有助于减少由 <详情>
2021-03-25 12:38:20
云技术 云计算核心技术Docker教程:自动启动容器
使用--live-restore可以使容器在Docker升级期间保持运行,即便网络和用户输入被中断。 <详情>
2020-08-19 15:38:02
云资讯 Docker 禁止美国 “实体清单”主体使用,Docker 开源项目不受影响
受限制的是 Docker 商业版及 Docker 的其它服务,比如 Docker Hub,但是关于 Docker 开源项目还能否使用,引发了担忧。 <详情>