进行Dockersearch时,registry无法在存储库中find所有图像

我想我知道为什么发生这种情况,dockerregistry容器丢失了推到回购站的logging,我希望直接search后端(在我的情况下,我使用S3桶)。 我有一个云模板,所以我经常从头开始我的堆栈,再次下载registry容器,设置所有的configuration,当然我失去了我推到回购的图像的所有数据。 运行Dockerregistry容器的我的ec2实例可能因任何原因而被更新或closures,而一个全新的实例将被一个自动扩展组合分解。

所以我的问题是基本上,总是连接到registry的最佳可用方式是什么,执行search时总是看到s3回购中的所有图像,无论registry是重新启动还是新的启动? 从ec2实例挂载一个卷将不起作用,因为ec2实例很可能在某个时间点与dockerregistry容器一起closures。

我假设你使用sqlalchemysearch后端。 我相信你有可能丢失你推送的图像的数据,因为search后端默认在本地存储数据。 这个场景和方法在Dockerregistry论坛https://github.com/docker/docker-registry/issues/475上从该页面讨论:

默认情况下,search后端在本地使用sqlite数据库。 您可以通过将连接string更改为自动缩放组外部的某个数据库,或在VPC的范围内(如果使用的话)进行configuration。 这可能是你所看到的问题吗?

讨论继续build议把外部数据库放在某个地方,可能放在EC2上,如果这个数据库出现故障,那么就没有必要担心了,因为空的数据库将被registry重新编入索引。

Interesting Posts