构建镜像时,Docker将逐步Dockerfile执行您的指令, 并按指定的顺序执行每个指令。在检查每条指令时,Docker 会在其缓存中查找可重用的现有镜像,而不是创建新的(重复的)镜像。
如果根本不想使用缓存,则可以使用命令--no-cache=true 上的选项docker build。但是,如果您确实让Docker使 用其缓存,那么了解何时可以找到匹配的镜像,这一点很重要。Docker遵循的基本规则概述如下:
1.从已在缓存中的父镜像开始,将下一条指令与从该基本镜像派生的所有子镜像进行比较,以查看是否其中一个是使用完全相同的指令构建的。如果不是,则高速缓存无效。
2.在大多数情况下,只需将中的指令Dockerfile与子镜像之一进行比较就足够了。但是,某些说明需要更多的检查和解释。
3.对于ADD和COPY指令,将检查镜像中文件的内容,并为每个文件计算一个校验和。在这些校验和中不考虑文件的最后修改时间和最后访问时间。在缓存查找期间,将校验和与现有镜像中的校验和进行比较。如果文件中的任何内容(例如内容和元数据)发生了更改,则缓存将无效。
4.除了ADD和COPY命令之外,缓存检查不会查看容器中的文件来确定缓存是否匹配。例如,在处理RUN apt-get -y update命令时,不检查容器中更新的文件以确定是否存在缓存命中。在这种情况下,仅使用命令字符串本身来查找匹配项。
缓存无效后,所有后续Dockerfile命令都会生成新镜像,并且不使用缓存。
(免责声明:本网站内容主要来自原创、合作媒体供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )
相关阅读
- 吉利银河A7预售10.38万元起,首搭雷神AI电混2.0,油耗低至2L
- TATA木门建博会三大变革:静音技术破圈+轻资产招商+卫星店盈利模型落地
- TATA木门高调亮相建博会以静音创新勾勒美好人居新图景
- 建博会论道:从TATA木门革新到家居生态 重构行业变革聚势燎原
- 广州建博会首日 TATA木门“门启新境”演绎家居革新进化论
- 第27届广州建博会启幕在即 TATA木门三大变革再启新境
- 2025广州建博会将至!TATA木门携“王炸”产品阵容强势来袭
- WEC 2025 世界算力博览会落地鄂尔多斯:汇聚全球算力智慧,共绘产业升级新图景
- MAZDA EZ-60领衔 长安马自达多款新车型亮相2025重庆车展
- 首战环塔,完赛!纵横 G700 沙海凯旋,致每一个“在路上”的你