4.3.2、认识 Registry

认识 Registry

Registry 是一个存储,内容分发系统,通过命名Docker的镜像,让镜像可以有不同的标志版本号。比如,镜像distribution/registry,就有 2.0 和 latest两个标志。

用户通过pull和push命令和registry进行交互。比如, docker pull myregistry.com/stevvooe/batman:voice

存储本身是委托不同的驱动程序。默认的存储驱动是本地的POSIX文件系统,适用于开发和小规模的部署场景。也支持基于云存储的驱动,像亚马逊的S3、微软的Azure和Ceph。用户也可以通过实现Storage API,创建自己个性化的存储驱动。 

因为安全的访问被托管的镜像对用户至关重要,registry原生的支持TLS。你也可以使用Nginx作为一个基础认证代理。

在registry的github仓库中,包含了额外的身份验证和授权方法的参考实现。这些功能仅在大规模或公共部署中才会用到。

最后,registry包含一个健壮的通知系统,当响应、日志和报告被激活时,回调webhooks钩子。报告对于想收集检测信息的大型系统很有用。目前,支持New Relic和Bugsnag。

理解镜像的命名

镜像的名字被用在标准的docker命令中,表达了它们的起源:

  • docker pull ubuntu 命令docker向docker官方的数据中心拉取一个名为 ubuntu 的镜像。这个是拉取日志的片段 docker pull registry-1.docker.io/library/ubuntu 。
  • docker pull myregistrydomain:port/foo/bar 命令docker到地址为 myregistrydomain:port 的registry中查找制定名字的镜像。

你也可以到官方的docker引擎使用文档中了解更多关于处理镜像的docker命令。

用例.

运行自己的registry是对你的CI/CD系统的完美整合和补充。在一个标准的工作流程里,当你向一个版本控制系统提交你的源码时,在你的CI系统上会自动构建,当构建成功后会向你的registry推送一个新的的镜像。在这个期间,registry将触发一个发布通知,或通知其他的系统新增了一个镜像。

如果你想在一个大型的集群机器中快速部署一个新的镜像时,它是必不可少的。

最后,在一个airgap的环境里,它是最好的发布方式。

要求

你需要对充分的了解docker,特别是关于上传和拉取镜像。你必须理解守护进程和客户端之间的差异,至少理解关于网络的基本概念。

虽然,启动一个registry是非常简单的,但是在生产的环境下对它的操作需要炒作技巧,就好像其他的服务一样。你应该熟悉系统的可用性和伸缩性,日志和日志处理,系统的监控和安全。对http和整个网络通信有深刻的理解,有一定的golang基础更好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值