加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

云计算核心技术Docker教程:docker构建缓存介绍

发布时间:2020-10-13 10:46:07 所属栏目:优化 来源:TechWeb编译
导读:构建镜像时,Docker将逐步Dockerfile执行您的指令, 并按指定的顺序执行每个指令。在检查每条指令时,Docker 会在其缓存中查找可重用的现有镜像,而不是创建新的(重复的)镜像。 如果根本不想使用缓存,则可以使用命令--no-cache=true 上的选项docker bui

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

timg

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

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

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

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

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

缓存无效后,所有后续Dockerfile命令都会生成新镜像,并且不使用缓存。

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!