Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


docker index服务概述

2015-3-12 09:40    评论: 1 分享: 5    

index顾名思义“索引”,index服务主要提供镜像索引以及用户认证的功能。当下载一个镜像的时候,如下图所示,首先会去index服务上 做认证,然后查找镜像所在的registry的地址并放回给docker客户端,最终docker客户端再从registry下载镜像,当然在下载过程中 registry会去index校验客户端token的合法性。不同镜像可以保存在不同的registry服务上,其索引信息都放在index服务上。

开源社区docker仓库 的实现,有两种运行模式

(1)standalone=true:在这种模式下,仓库自身提供了简单的index服务,在实现过程中index只是实现了简单的索引功能,没有实现用户认证功能

(2)standalone=false:在这种模式下,需要配置index的服务访问点,需自行实现index服务

index服务对外提供的接口

index对外提供的REST API接口如下:

  • PUT /v1/repositories/(namespace)/(repo_name)/

    在docker push的流程中会调用到,其作用是创建一个repository。创建之前会对用户密码以及权限进行验证,如果合法,则最终会返回一个token至docker客户端

  • DELETE /v1/repositories/(namespace)/(repo_name)/

    删除一个repository,删除之前会对用户密码以及权限进行验

  • PUT /v1/repositories/(namespace)/(repo_name)/images

    在docker push流程中会调用到,其作用是更新repository对应的image列表,更新之前会校验携带的token

  • GET /v1/repositories/(namespace)/(repo_name)/images

    在docker pull流程中会调用到,其作用是获取repository对应的image列表。获取之前会对用户密码以及权限进行验证

  • PUT /v1/repositories/(namespace)/(repo_name)/auth

    校验token的合法性

  • GET /v1/users/

    docker login会调用到此接口,用来验证用户的合法性

  • POST /v1/users/

    docker login会调用到此接口,可用来创建一个用户

  • PUT /v1/users/username/

    用来更新用户信息

各个接口的请求的具体Header、Action、Response,可参考 这里

index服务已有的开源实现

https://github.com/ekristen/docker-index,采用node js实现,其中实现了一套简单的用户管理。

发表评论


最新评论

我也要发表评论

闲云岛 2015-3-12 14:33  新浪微博网友评论
Docker真方便啊!前段时间用Docker弄了个Owncloud镜像,部署和迁移起来真舒心[嘻嘻]
回复
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。