docker注册表amazon aws dynamodb索引数据库

docker-registry-index-dynamodb的Python项目详细描述


[docker注册表](https://github.com/docker/docker-registry)的dynamodb索引。 默认情况下,Docker注册表使用[SqlAlchemy](http://www.sqlalchemy.org/)存储其索引 在关系数据库中。此项目提供一个模块,允许您将索引存储在 [亚马逊AWS动态数据库](http://aws.amazon.com/dynamodb/)。这特别有用 如果你用的是DockerRegistry的AmazonS3驱动程序。带发电机 您将有一个与高可用性映像存储匹配的高可用性索引。

#目录

  • [快速启动](快速启动)
  • [配置](配置)
  • [手动安装](手动安装)
  • [实施细节](实施细节)

#快速入门

TOdo-创建docker映像,配置为使用此扩展名。

#配置

查看[docker registry](https://github.com/docker/docker-registry)项目了解有关 正在配置Docker注册表。这个项目使用相同的配置机制 可以将配置添加到Docker注册表使用的相同配置文件中。这个 此代码使用的配置存储在扩展中的Docker注册表配置中 章节:例如:

common: &common
# add the following search_backend: docker_registry_index.dynamodb
extensions:
dynamodb_index:
database: _env:DYNAMODB_DATABASE:docker-registry repository_table: _env:DYNAMODB_REPOSITORY_TABLE version_table: _env:DYNAMODB_VERSION_TABLE region: _env:DYNAMODB_REGION access_key: _env:DYNAMODB_ACCESS_KEY secret_access_key: _env:DYNAMODB_SECRET_ACCESS_KEY

如果未指定存储库表,则表名将通过将存储库添加到数据库名称的末尾而形成。如果未指定版本表,则-版本将添加到数据库名称中。注意,dynamodb中没有数据库的概念,这里的数据库名只是在配置中没有指定表名时用作计算表名的前缀。

区域将默认为s3_区域,该区域又默认为“us-east-1”。

访问密钥秘密访问密钥分别默认为s3u访问密钥s3u秘密访问密钥的值。如果未指定,则必须通过其他方式配置这些。这段代码使用[boto python interface to amazon web services](https://github.com/boto/boto)访问dynamodb。因此,可以在主目录或/etc中使用boto配置文件。有关详细信息,请参阅[boto配置](http://docs.pythonboto.org/en/latest/)文档。

因此,如果在未指定配置的情况下使用dynamodb,则默认使用'docker registry repository'作为respository_table名称,使用'docker registry version'作为version_table名称。region、access_key和secret_access_key将默认为s3值或boto配置中的任何值。但请记住,您仍然必须将search_backend设置为docker_registry_index.dynamodb。

#手动安装

只需像平常一样安装和运行docker注册表,但首先要确保安装了这个python包(docker注册表索引dynamodb),并将docker注册表配置设置为使用它。

  • 正常安装Docker注册表。
  • 安装这个python包。 *可从PYPI获得:pip安装Docker注册表索引dynamodb
  • 确保Docker注册表配置将search_backend设置为Docker_registry_index.dynamodb
  • 可选设置其他配置,如上面和Docker注册表项目中指定的。
  • 运行Docker注册表。 *安装Docker注册表还会安装一个Docker注册表命令。

#实施细节

##启动

启动时,索引类(执行所有工作的类)检查是否配置了DeNoDB表名称,如果没有,则创建它们。

如果创建了表,那么已经位于数据存储中的存储库(可能是s3数据存储)将被加载到存储库表中。这意味着您可以删除dynamodb表,并且它们将在docker注册表启动时重新加载。你可能不应该在Docker注册表运行时删除表,尽管它们只用于查询。

索引构造函数中使用了一个简单的锁,以防止多个线程试图同时创建和/或加载数据库。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java定位/显示JLayeredPane   java如何在每个操作系统上运行JavaFX项目   java中的https请求   jtextfield maskformatter java数字和空间   java JWindow不会出现   java如何将带有状态代码的WebSocket close frame发送到浏览器?   安卓领域。io[Java]通知如何仅侦听特定表中的更改?   java如何在处理torque时正确定义项目结构   json在使用boon ObjectMapper(反)序列化JavaPOJO时是否可以确保类型安全(包括不同的POJO版本)?   java@Query在第二种情况下不起作用   java如何创建通用EJB类   已安装java Hibernate JBoss工具,但未显示Hibernate透视图   在Python中接收java类对象   java组织。冬眠MappingException:无法确定javafx的类型。场景形象图片,在桌子上:产品   编译时的java无限循环?   java根据另一个字符串的值确定一个字符串?   java在SpringMVC应用程序中查找资源   java JPA查询,ArgumentException   java Android Studio cordova推送插件   java能为某些Android设备提供性能指标吗?