千家信息网

Docker镜像的缓存特性是怎样的

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关Docker镜像的缓存特性是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Docker 会缓存已有镜像的镜像层,构建
千家信息网最后更新 2026年11月01日Docker镜像的缓存特性是怎样的

这篇文章将为大家详细讲解有关Docker镜像的缓存特性是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Docker 会缓存已有镜像的镜像层,构建新镜像时,如果某镜像层已经存在,就直接使用,无需重新创建。

举例说明。
在前面的 Dockerfile 中添加一点新内容,往镜像中复制一个文件:

root@ubuntu:~# ls ①

Dockerfile testfile

root@ubuntu:~#

root@ubuntu:~# docker build -t ubuntu-with-vi-dockerfile-2 .

Sending build context to Docker daemon 32.77 kB

Step 1 : FROM ubuntu

---> f753707788c5

Step 2 : RUN apt-get update && apt-get install -y vim

---> Using cache ②

---> 35ca89798937

Step 3 : COPY testfile / ③

---> 8d02784a78f4

Removing intermediate container bf2b4040f4e9

Successfully built 8d02784a78f4


① 确保 testfile 已存在。

② 重点在这里:之前已经运行过相同的 RUN 指令,这次直接使用缓存中的镜像层 35ca89798937。

③ 执行 COPY 指令。
其过程是启动临时容器,复制 testfile,提交新的镜像层 8d02784a78f4,删除临时容器。

在 ubuntu-with-vi-dockerfile 镜像上直接添加一层就得到了新的镜像 ubuntu-with-vi-dockerfile-2。

如果我们希望在构建镜像时不使用缓存,可以在 docker build 命令中加上 --no-cache 参数。

Dockerfile 中每一个指令都会创建一个镜像层,上层是依赖于下层的。无论什么时候,只要某一层发生变化,其上面所有层的缓存都会失效。

也就是说,如果我们改变 Dockerfile 指令的执行顺序,或者修改或添加指令,都会使缓存失效。

举例说明,比如交换前面 RUN 和 COPY 的顺序。

虽然在逻辑上这种改动对镜像的内容没有影响,但由于分层的结构特性,Docker 必须重建受影响的镜像层。

root@ubuntu:~# docker build -t ubuntu-with-vi-dockerfile-3 .

Sending build context to Docker daemon 37.89 kB

Step 1 : FROM ubuntu

---> f753707788c5

Step 2 : COPY testfile /

---> bc87c9710f40

Removing intermediate container 04ff324d6af5

Step 3 : RUN apt-get update && apt-get install -y vim

---> Running in 7f0fcb5ee373

Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]

......


从上面的输出可以看到生成了新的镜像层 bc87c9710f40,缓存已经失效。

除了构建时使用缓存,Docker 在下载镜像时也会使用。例如我们下载 httpd 镜像。

docker pull 命令输出显示第一层(base 镜像)已经存在,不需要下载。

由 Dockerfile 可知 httpd 的 base 镜像为 debian,正好之前已经下载过 debian 镜像,所以有缓存可用。通过 docker history 可以进一步验证。

关于Docker镜像的缓存特性是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

镜像 缓存 指令 特性 内容 命令 容器 文章 更多 知识 篇文章 顺序 加一 影响 输出 不错 相同 上层 也就是 也就是说 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国互联网科技股 万易互联网科技 互联网科技小贷 智慧科技互联网 无线互联网科技 互联网女皇 腾讯科技 互联网金融和金融科技 甘肃拓世互联网科技有限公司 中盈科技互联网信息有限公司 欧洲十大科技互联网公司 智腾互联网科技有限公司 996高科技互联网公司 合肥互联网科技公司公章图片 元气玛特互联网科技公司是外包吗 有人说阿里系是互联网科技企业 互联网科技和医药行业 重庆科技产业互联网有哪些 恒生互联网科技趋势 广州全民伙伴互联网科技有限公司 株洲百竞科技的互联网营销顾问 中关村互联网科技集团 互联网络科技有限公司 互联网软件和科技 宜昌元轩互联网科技有限公司 科技类公司包括互联网吗 皮皮虾互联网科技有限公司 广州燕处互联网科技有限公司 云鲸互联网络科技有限公司 容联科技互联网电商 广西泛欧互联网科技有限公司
0