如何确保docker build将docker缓存与docker注册表同步?
想象一下这样的场景:
1-我在我的笔记本电脑上为weblogic创建了一个docker镜像,名为:
my-local-registry:5000/weblogic:12.2.1.3
2-然后我将其推送到我们的本地docker注册表:
docker push my-local-registry:5000/weblogic:12.2.1.3
3-在我们的一台服务器(例如host-1)中,我有一个docker文件,其中使用此weblogic映像来构建应用程序映像,如下所示:
FROM my-local-registry:5000/weblogic:12.2.1.3
USER weblogic
WORKDIR /u01/scripts
RUN deploy_application.sh
.
.
.4-i创建应用程序镜像:
docker build -t my_application .
5-在host-1上,我执行docker images命令,我看到2个镜像。一种是从本地注册表中提取的weblogic,另一种是应用镜像。
7-现在,我在笔记本电脑上更新weblogic镜像(例如,应用新的安全补丁),然后再次推送:
docker push my-local-registry:5000/weblogic:12.2.1.3
8-在主机1上,我重新创建了应用程序映像。因为它已经在docker缓存中有weblogic图像,所以它不会获取更新后的图像。
使用FROM命令时,如何强制docker检查docker缓存中的任何现有镜像是否与本地注册表同步?(当我运行docker pull my-local-registry:5000/weblogic:12.2.1.3时,它会更新docker缓存,但我不想每次都这样做!)
在此之前非常感谢。
发布于 2019-04-18 04:18:24
我找到了解决方案。我需要的是--拉
docker build --pull ...
它会将docker缓存与docker注册表进行比较,如果docker缓存中不存在更新层,则从docker注册表中提取更新的层。
https://stackoverflow.com/questions/55501429
复制相似问题