我如何确保Docker内部版本将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-我创建应用程序镜像:
docker build -t my_application .
5-在主机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缓存,但我不想每次都这样做!)非常感谢。
最佳答案
我找到了解决方案。我需要的是--pulldocker build --pull ...
它将比较docker缓存和docker注册表,如果docker缓存中不存在更新的图层,则将它们从docker注册表中提取。
关于docker - 同步Docker主机图像与本地注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55501429/