eric
作者eric·2015-04-03 16:29
系统运维工程师·某金融单位

Docker仓库index服务浅析

字数 1176阅读 1892评论 0赞 0

【编者的话】本文对Docker的index服务进行了详细的介绍。index服务主要提供镜像索引以及用户认证的功能。当下载一个镜像的时候,首先会去index服务上做认证,然后查找镜像所在的Registry,最终Docker再从Registry下载镜像.....

Docker index服务概述

index顾名思义“索引”,index服务主要提供镜像索引以及用户认证的功能。当下载一个镜像的时候,首先会去index服务上做认证,然后查找镜像所在的Registry,最终Docker再从Registry下载镜像。不同镜像可以保存在不同的Registry服务上,其索引信息都放在index服务上,最终达到负载均衡的能力。

开源社区Docker仓库,有两种运行模式,具体如下:

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

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

index服务对外提供的接口

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

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

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

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

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

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

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

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

校验token的合法性。

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

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

GET /v1/users/

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

POST /v1/users/

用来更新用户信息

PUT /v1/users/username/

index服务已有的开源实现

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

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广