我在Artifactory中配置了一个远程docker仓库(到docker hub)。为了测试它,我创建了docker image A并将其推送到docker hub。
图像为user-name/image:latest
。
现在,我可以使用artifactory-url/docker/user-name/image:latest
从人工制品中提取它。
现在,我已将映像A更新为映像B,并将其推送到docker hub。当我删除本地图像并再次从Artifactory提取该图像时,我仍然得到图像A(因此似乎使用了缓存)。当我将以下设置设为零(元数据检索缓存周期)时,我将拉出更新的图像B。
很好。现在,我再次增加了元数据检索缓存周期设置。现在,我已从Docker中心删除了该图像,并尝试使用人工制品再次将其拉出。当我希望它将仅从Artifactory缓存中提取图像时,此操作失败了?
我也无法直接使用缓存docker pull artifactory-url/docker-cache/user-name/image:latest
将其拉出。
是否有办法使用来自人为因素的docker映像,该映像在远程存储库中已删除?
答案 0 :(得分:0)
您写的第一部分还可以,并且它的预期行为正确。现在,对于第二部分,这也是预期的行为,我将解释原因-当您使用虚拟存储库作为Artifactory Docker注册表时,它将始终首先在本地存储库中搜索工件,然后在远程缓存中搜索工件,然后然后才在遥控器本身中。但是,如果Artifactory在本地或远程缓存存储库中找到该程序包,它还将始终检查远程程序是否有较新版本。由于Artifactory从远程存储库接收到404错误,因此这导致从远程本身删除的缓存图像无法从Artifactory中的远程缓存下载。您可以通过将映像移至本地存储库来解决此问题,然后将其拉出。