docker index 服务概述

发布于 2024-09-17 11:49:04 字数 2088 浏览 13 评论 0

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 实现,其中实现了一套简单的用户管理。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

楠木可依

暂无简介

0 文章
0 评论
21 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文