registry逻辑解析:启动与配置加载

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker社区中有丰富的文档介绍,registry如何使用,但对于registry内部的处理逻辑却鲜有人知。下面对于registry的代码进行了一些阅读,下文将讲述registry的一些关键逻辑。 首先,是启动过程。参照下图:

Docker社区中有丰富的文档介绍,registry如何使用,但对于registry内部的处理逻辑却鲜有人知。下面对于registry的代码进行了一些阅读,下文将讲述registry的一些关键逻辑。


首先,是启动过程。参照下图:

registry启动

registry的启动,主要是由通用的 cmd启动 registry.go进行启动的,registry.go中会引用yaml的parser去加载confiy.yml文件(configuration.go)是配置文件schema,加载config的之后会对照schema并忽略不在schema中的配置节点。


之后,会去读系统ENV,在系统配置中读出通过docker-compose(或者命令行加入的环境变量)。会按照环境变量名称找到对应了configration,并且“覆盖”第一次读出的config配置。

**从这里可以看到docker run或者compose的配置,是会覆盖原有registry config配置的,请各位关注。


另外yaml读写有个规则,就是会将 String自动翻译成指定数据的类型。这里有的时候会让人很困惑,比如,之前鄙人就踩到一个坑,系统自动将我的一个ossbucketname:“040432”翻译成了一个八进制的数字。所以各位如何不需要使用数字,尽量不要用纯数字的表达符。


之后,被翻译成configration对象的配置,会传递到app.go的初始化过程中,对于各个component进行参数初始化。

(包括各个handler,notification endpoint,storage driver,proxy等)



app.go中包含了一个方法,叫做ServeHTTP,一看名字就是知道是做啥的了。

对于registry的所有的请求,都是有app.go去handler的,之后会传递到方法dispatcher中根据不同的请求的context进行请求分发。


dispatcher在分发前,会统一地调用authorize进行鉴权的操作,如鉴权不通过,则会通过统一错误码机制,返回统一的错误码。若通过,则会根据route.go中的配置,将指定的请求映射到对应的handler上边去。


每一个handler对应是使用的case在registry的文档上都可以看到,这里就不一一讲述了。下一章会对于,镜像上传下载场景中,所需要涉及到的handler中的逻辑进行分析。


子思
+关注
目录
打赏
0
0
0
0
1
分享
相关文章
使用nps配置内网穿透加域名解析
使用nps配置内网穿透加域名解析
390 76
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
详细介绍SpringBoot启动流程及配置类解析原理
通过对 Spring Boot 启动流程及配置类解析原理的深入分析,我们可以看到 Spring Boot 在启动时的灵活性和可扩展性。理解这些机制不仅有助于开发者更好地使用 Spring Boot 进行应用开发,还能够在面对问题时,迅速定位和解决问题。希望本文能为您在 Spring Boot 开发过程中提供有效的指导和帮助。
220 12
DHCP与DNS的配置
通过这些步骤,您可以在Linux环境下成功配置和验证DHCP和DNS服务。希望这些内容对您的学习和工作有所帮助。
457 27
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
Spring AOP深度解析:探秘动态代理与增强逻辑
Spring框架中的AOP(Aspect-Oriented Programming,面向切面编程)功能为开发者提供了一种强大的工具,用以将横切关注点(如日志、事务管理等)与业务逻辑分离。本文将深入探讨Spring AOP的底层原理,包括动态代理机制和增强逻辑的实现。
163 4
DNS是什么?内网电脑需要配置吗?
【10月更文挑战第22天】DNS是什么?内网电脑需要配置吗?
1131 1
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
290 0

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问