2020-02-12 12:00:03
使用–no-cache构建镜像大多情况下足够解决由于缓存引起的问题。不过有时候你想要一个更细粒度的解决方案。例如你构建的镜像需要时间比较长,你仍然想一些步骤使用缓存,然后从指定的点开始不使用缓存重新运行命令构建镜像。
你想在构建镜像时设置从Dockerfile的指定位置开始使缓存失效。
在命令的后面添加注释来使缓存失效。
例如我们在以下的Dockerfile中的CMD命令后添加注释以让缓存从这里失效:
FROM node MAINTAINER ian.miell@gmail.com RUN git clone http://github.com/docker-in-practice/todo.git WORKDIR todo RUN npm install RUN chmod -R 777 /todo EXPOSE 8000 CMD ["npm","start"] #bust the cache
输出为:
$ docker build . Sending build context to Docker daemon 2.56 kB Sending build context to Docker daemon Step 0 : FROM node ---> 91cbcf796c2c Step 1 : MAINTAINER ian.miell@gmail.com ---> Using cache A “normal” docker build ---> 8f5a8a3d9240 Step 2 : RUN git clone -q http://github.com/docker-in-practice/todo.git ---> Using cache ---> 48db97331aa2 Step 3 : WORKDIR todo ---> Using cache ---> c5c85db751d6 Step 4 : RUN npm install ---> Using cache ---> be943c45c55b Step 5 : EXPOSE 8000 ---> Using cache ---> 805b18d28a65 Step 6 : CMD ["npm","start"] #bust the cache ---> Running in fc6c4cd487ce ---> d66d9572115e Removing intermediate container fc6c4cd487ce Successfully built d66d9572115e
从输出你会看到在第6步已经不使用缓存了,而之前的步骤仍使用缓存,这既缩短了构建镜像的时间,又能解决缓存可能引起的问题。
这个技巧工作的原因是我们在命令后添加了非空字符,所以Docker认为这是一个新的命令,也就不使用缓存了。
你会好奇如果我们更改的是第4步命令RUN npm install,那后面的第5步第6步还会使用缓存吗?答案是从更改的第4步开始下面的就不能使用缓存了。所以由于这个原因,建议尽可能的把一些不常需要变更的命令往上移。
Dockerfile参考(11) – ADD COPY添加文件和目录到镜像
02-27
Docker实践(19) – 保留容器的bash历史记录
04-21
58 赶集基于 Docker 的自动化部署实践
05-02
Docker使用示例(3) – 调试容器
06-16
Docker用户指南(15) – 默认bridge网络 – 绑定容器端口到主机
03-31
Docker命令行参考(11) – Docker load从tar归档文件或STDIN导入镜像
07-20
Docker命令行参考(18) – Docker exec在运行中的容器执行一个命令
06-02
Docker命令行参考(26) – Docker stats实时显示容器资源使用统计
06-21
Docker命令行参考(4) – Docker inspect显示容器或镜像相关信息
07-19
Docker命令行参考(6) – Docker commit提交容器的更改创建新镜像
07-15
Docker-postfix, 在 Docker 容器中,使用smtp身份验证( sasldb ) 运行后缀
06-26
Ubuntu 16.04使用Docker部署WordPress
06-13
使用 Docker 搭建 Tomcat 运行环境
07-24
Windows 7系统如何查看还原点所占磁盘空间和设置最大可使用空间?
06-07
如何实现每次点击IE弹出的窗口都是自己设置好的大小和显示比例(如125%)
06-10
JavaGUI设置windows主题外观
07-18
Linux中grep命令的12个实践例子
05-15
Optimus机型如何为程序手动指定首选图形处理器方案
06-24
ThinkPad笔记本Windows 10系统下如何设置电池充电阈值
07-14
Thinkpad Z60 - 用恢复光盘恢复系统后硬件口令重设功能失效的解决方法
02-13
fancycache(硬盘缓存软件)v0.8.1 中文版
1.57MB
下载liveprofessor汉化版 (声音VST机架插件设置软件)2.4.3
157MB
下载videocacheview(视频缓存提取工具)v3.05 绿色版
104.9K
下载软媒设置大师绿色版 v3.7.1.0 最新版
671KB
下载360点睛推广客户端 v2.3.1.1 官方版
12.2M
下载defpix屏幕坏点检测工具官方版下载v1.3
761 KB
下载一点通送货单打印软件 v2.64 官方版
18M
下载冰点还原精灵卸载下载
15.6M
下载圆点校园广播系统下载
22.75M
下载多点相册
14.6M
下载小鹿点睛助手(360点睛营销推广软件) v1.3.110.953 最新版
23.5M
下载快译点企业版下载
317MB
下载绿点鼠标自动点击器(鼠标自动点击工具) 3.20 中文版
2.34MB
下载美萍vod点播系统(电脑点播软件) v8.5 标准版
3.1M
下载腾讯企点
89.2M
下载AKVIS Points下载
229.6M
下载deadpixeltest下载
167.16KB
下载deadpixeltest下载
0.16MB
下载电脑报时下载
1.97 MB
下载