关于注册表

预计阅读时间:3分钟

该页面包含有关使用开源Docker Registry托管自己的注册表的信息。有关Docker Hub的信息,它提供了托管注册表以及其他功能,例如团队,组织,Web挂钩,自动构建等,请参阅Docker Hub

注册表是一个存储和内容交付系统,其中包含命名的Docker映像,这些映像具有不同的标记版本。

示例:distribution/registry带有标签2.0和的图片2.1

用户通过使用docker push和pull命令与注册表进行交互。

范例:docker pull registry-1.docker.io/distribution/registry:2.1

存储本身委托给驱动程序。默认的存储驱动程序是本地posix文件系统,适用于开发或小型部署。还支持其他基于云的存储驱动程序,例如S3,Microsoft Azure,OpenStack Swift和Aliyun OSS。希望使用其他存储后端的人们可以通过编写自己的实现Storage API的驱动程序来实现 。

由于确保对托管映像的访问至关重要,因此注册表本身就支持TLS和基本身份验证。

Registry GitHub存储库包含有关高级身份验证和授权方法的其他信息。预期只有非常大的部署或公共部署才能以这种方式扩展注册表。

最后,Registry附带了一个强大的通知系统,可以响应活动而调用webhooks,并且具有广泛的日志记录和报告功能,这对于希望收集度量标准的大型安装非常有用。

了解图像命名

典型的docker命令中使用的映像名称反映了它们的来源:

  • docker pull ubuntu指示ubuntuDocker提取来自官方Docker Hub的命名映像。这只是较长docker pull docker.io/library/ubuntu命令的快捷方式
  • docker pull myregistrydomain:port/foo/bar指示码头工人联系位于的注册表myregistrydomain:port以查找图像foo/bar

您可以在官方Docker引擎文档中找到有关处理映像的各种Docker命令的更多信息。

用例

运行您自己的注册表是与CI / CD系统集成并对其进行补充的绝佳解决方案。在典型的工作流程中,对源版本控制系统的提交会触发CI系统上的构建,如果构建成功,则会将新映像推送到注册表中。然后,来自注册表的通知将触发在暂存环境上的部署,或通知其他系统有新映像可用。

如果要在大型计算机群集上快速部署新映像,它也是必不可少的组件。

最后,这是在隔离的网络内分发图像的最佳方法。

要求

您绝对需要熟悉Docker,尤其是在推送和拉取映像方面。您必须了解守护程序和cli之间的区别,并且至少要掌握有关联网的基本概念。

同样,虽然启动注册表非常容易,但是在生产环境中对其进行操作就需要操作技能,就像其他任何服务一样。您应该熟悉系统可用性和可伸缩性,日志记录和日志处理,系统监视以及安全性101。对http和整个网络通信的深入了解以及对golang的熟悉对于高级操作或黑客入侵当然也很有用。

下一个

深入部署注册表

注册表本地图像标签存储库分布用例要求