【编者的话】本文对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 条评论