构建映像时,Docker 会逐步 Dockerfile执行 中的说明,并按照指定的顺序执行每个说明。在检查每条指令时,Docker 会在其缓存中查找可以重用的现有映像,而不是创建新的(重复)映像。
如果您根本不想使用缓存,则可以使用命令–no-cache=true 上的选项docker build。但是,如果您确实让 Docker 使用其缓存,那么了解它什么时候可以,什么时候不能找到匹配的图像很重要。Docker 遵循的基本规则概述如下:
从已经在缓存中的父映像开始,将下一条指令与从该基本映像派生的所有子映像进行比较,以查看其中一个是否是使用完全相同的指令构建的。如果不是,则缓存无效。
在大多数情况下,简单地将 中的指令Dockerfile与子图像之一进行比较就足够了。但是,某些说明需要更多的检查和解释。
对于ADD和COPY指令,检查图像中文件的内容并为每个文件计算校验和。这些校验和不考虑文件的最后修改和最后访问时间。在缓存查找期间,校验和与现有图像中的校验和进行比较。如果文件中有任何更改,例如内容和元数据,则缓存无效。
除了ADDandCOPY命令之外,缓存检查不会查看容器中的文件来确定缓存匹配。例如,在处理RUN apt-get -y update命令时,不会检查容器中更新的文件以确定是否存在缓存命中。在这种情况下,仅使用命令字符串本身来查找匹配项。
一旦缓存失效,所有后续Dockerfile命令都会生成新图像,并且不会使用缓存。
Ubuntu是一个以桌面应用为主的Linux操作系统。它是一个开放源代码的自由软件,提供了一个健壮、功能丰富的计算环境,既适合家庭使用又适用于商业环境。Ubuntu将为全球数百个公司提供商业支持。 ...
查看全文Docker采取了一种保守的方法来清理未使用的对象(通常称为“垃圾收集”),例如图像,容器,卷和网络:除非您明确要求Docker这样做,否则通常不会删除这些对象。这可能会导致Docker使用额外的磁盘空...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,四位知情人士今日透露,亚马逊、微软和谷歌这三大云计算服务提供商,正在竞争波音公司(Boeing)价值10亿美元的云服务合同。 这些...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,多位知情人士今日称,继加州、纽约州和华盛顿州之后,马萨诸塞州和宾夕法尼亚州的总检察长也加入到对亚马逊的反垄断调查中。 如今,越来越...
查看全文
您好!请登录