千家信息网

docker-registry的定制和性能是怎样的

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"docker-registry的定制和性能是怎样的",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"docker-registry的定制和性
千家信息网最后更新 2026年11月01日docker-registry的定制和性能是怎样的

本篇内容主要讲解"docker-registry的定制和性能是怎样的",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"docker-registry的定制和性能是怎样的"吧!

docker-index

  • Web UI

  • Meta-data 元数据存储(附注、星级、公共库清单)

  • 访问认证

  • token管理

docker-registry

  • 存储镜像、以及镜像层的家族谱系

  • 没有用户账户数据

  • 不知道用户的账户和安全性

  • 把安全和认证委托给docker-hub来做,用token来保证传递安全

  • 不需要重新发明轮子,支持多种存储后端

  • 没有本地数据库

后端存储

  • 因为镜像最终是以tar.gz的方式静态存储在服务端

  • 适用于对象存储而不是块存储

  • registry存储驱动

  • 官方支持的驱动有文件、亚马逊AWS S3、ceph-s3、Google gcs、OpenStack swift,glance

一次docker pull发生的交互

  1. Client向Index请求,知道从哪里下载samlba/busybox

  2. Index回复:

  3. samalba/busybox在RegistryA

  4. samalba/busybox的checksum,所有层的token

  5. Client向Registry A请求,samalba/busybox的所有层。Registry A负责存储samalba/busybox,以及它所依赖的层

  6. Regsitry A向Index发起请求,验证用户/token的合法性

  7. Index返回这次请求是否合法

  8. Client从registry下载所有的层

  9. registry从后端存储中获取实际的文件数据,返给Client

搭建私有镜像库的方案

上面的index,registry,后端存储3者都是可选的。registry分0.9的python版实现和2.0版的go实现。

认证和权限

如果镜像库不直接提供给用户使用,仅仅是私有PaaS的一部分,可以不用index组件,直接上registry就行。index的开源实现包括docker-registry-web,docker-registry-frontend。支持较好的是马道长的wharf。

后端存储

我们环境使用的是网易的内部的对象存储NOS,类似于S3。其他的方案没用过,如果要自己搭,可能靠谱的是ceph-s3。如果在公网环境或者已经购买了公有云服务,可以考虑自己实现一个registry-对象存储的驱动。

集群和分布式

registry本身是无状态的,可以水平扩展,然后在前面做ngix的负载均衡。

性能分析

v1协议 vs v2协议

客户端push总时间pull总时间
registry-0.9388.180.9
registry-2.0368.476.1

做了性能对比测试,同样为docker1.6,v2协议比v1协议快5-6%左右,基本可以忽略不计。

单次pull和push的性能分析

层|docker push|curl put :-----|:----- layer1|34s|4.3s layer2|325s|44.6s

层|docker pull|curl get :-----|:----- layer1|42s|20.8s layer2|2s|1.4s

经过对比测试,单次docker pull和push的最大耗时在客户端,也可以观察到每次做docker pull和push的时候系统CPU占用率都在100%。也就是说50%以上的时间花在本地做的压缩、计算md5等操作。

并发分析

并发测试的结果是在一个2核2G内存的registry-0.9服务器,直接用文件存储,大约能负载50个docker client的并发。如果换用对象存储的后端,估计10个docker client的并发就是极限了。在这方面registry-2.0的并发能力更强,但对内存消耗更大。

Q&A

问:2.0的性能也没什么变化啊,优势在哪里? **答:**客户端优化有限,在超过100个节点同时pull一个镜像时,2.0服务端资源占用少。

问:服务端的并发瓶颈在哪里? **答:**服务端的代码还没做过更多的分析,从经验判断主要还是IO,python的内存占用比较多。

问:考虑过多机房image存储CDN没? **答:**这个还真没考虑过,目前我们的镜像服务是个内部PaaS平台用的,只要保证集群所在机房能快速访问就行。

问:那还不如每机房加缓存? **答:**是的,也可以考虑registry的mirror机制,用了mirror后可以一个点push,其他点pull。

问:你们的调度器是自己开发的吗? **答:**我们底层用的是Kubernetes,调度器做一定的修改,主要是为了保证多个可用域。

问:内部的PaaS有没有做资源限制、网络隔离? **答:**有,目前我们的Docker是跑在kvm上。

问:昨天网易好多服务断片了,据说是网络攻击,那这些服务有跑在Docker上吗? **答:**呵呵,断片是因为BGP的核心交换机问题,我也很好奇是什么引起的,目前还没有组织和个人声称对此事负责。

问:有没有考虑过nova-docker? **答:**社区不是很活跃,我们没有采用这个方案,但对于中小公司来说这是最快的方案。

问:为啥不考虑自己实现调度器? **答:**忙不过来,我们也想做啊,这个放在后面实现。

问:我们准备在某公有云上跑Docker集群。 **答:**先这么用呗,我觉得Docker的优势就是底层平台无关,今后换了底层迁移也没有那么困难。

到此,相信大家对"docker-registry的定制和性能是怎样的"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

存储 服务 性能 镜像 对象 数据 方案 用户 分析 安全 客户 客户端 底层 文件 时间 机房 集群 保证 支持 测试 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技怎么样 云之行互联网科技 科技赋能下的互联网金融 深圳恒合互联网络科技有限公司 互联网科技金融 互联网金融科技创新 赫美联合互联网科技 互联网高科技企业 上海宁丞科技互联网 互联网科技公司有风险吗 中国科技创新与世界互联网大会 智帮互联网科技公司最近动向 长沙渺峰互联网科技有限公司 互联网科技职业技能培训学校 求路客互联网科技电话 北京军民互联网科技公司 安徽零酒互联网科技有限公司 10位科技互联网大佬 上海互联网科技园景观 互联网企业和网络科技有限公司 银优互联网科技有限公司 互联网科技ppt模板 哈尔滨新华互联网科技 中盈科技互联网信息有限公司 天速互联网络科技有限公司 互联网公司科技股 华夏恒生科技与互联网科技 深圳无忧互联网科技 东风日产互联网科技公司叫什么 高科技和互联网的现代国家
0