关于注册表
预计阅读时间: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
指示ubuntu
Docker提取来自官方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的熟悉对于高级操作或黑客入侵当然也很有用。
下一个
深入部署注册表
注册表,本地,图像,标签,存储库,分布,用例,要求