在进行Docker搜索时,Registry无法在存储库中找到所有图像

时间:2015-03-12 21:22:18

标签: search amazon-s3 docker persist docker-registry

我想我知道为什么会发生这种情况,docker注册表容器会丢失推送到repo的内容的记录,我希望直接针对后端进行搜索(在我的情况下我使用的是s3存储桶)。我有一个云模板,所以我经常从头开始堆栈,再次下载注册表容器,设置所有配置,当然我丢失了我推送到repo的图像的所有数据。运行docker注册表容器的ec2实例可以因任何原因更新或关闭,并且一个全新的实例将由自动扩展组启动。

所以我的问题基本上是,什么是始终连接到注册表并始终在执行搜索时看到s3仓库中的所有图像的最佳可用方式,是否重新启动了注册表或新的注册表?从ec2实例安装卷不会起作用,因为ec2实例很可能在某个时间点与docker注册表容器一起关闭。

1 个答案:

答案 0 :(得分:1)

我假设您使用sqlalchemy搜索后端。我相信您可能会丢失有关所推送图像的数据,因为搜索后端默认情况下会在本地存储数据。这个场景及其解决方法将在docker注册论坛https://github.com/docker/docker-registry/issues/475上从该页面进行讨论:

  

默认情况下,搜索后端在本地使用sqlite数据库。您可以   通过将连接字符串更改为数据库来配置它   在您的自动缩放组外部或在范围内的某个地方   VPC(如果你正在使用一个,那就是)。这可能是你的问题吗?   看到?

讨论继续建议将一个外部数据库放在某个地方,可能放在EC2上,如果这个数据发生故障并且空白,则无需担心,因为空数据库将被注册表重新编入索引。