Registry是一个无状态,高度可扩展的服务器端应用程序,可存储并允许您分发Docker镜像。
使用注册表:
Registry与Docker引擎版本1.6.0或更高版本兼容。
启动注册表
docker run -d -p 5000:5000 --name registry registry:2
从Hub中拉出(或构建)一些镜像
docker pull ubuntu
标记镜像,使其指向Registry
docker image tag ubuntu localhost:5000/myfirstimage
上传镜像到Registry中
docker push localhost:5000/myfirstimage
从Registry中拉去镜像
docker pull localhost:5000/myfirstimage
停止Registry并删除所有数据
docker container stop registry && docker container rm -v registry
Registry是一个存储和内容传送系统,包含名为Docker的镜像,可以使用不同的标记版本。
用户使用docker push和pull命令与Registry进行交互。
存储本身被委托给驱动程序。默认存储驱动程序是本地posix文件系统,适用于开发或小型部署。还支持其他基于云的存储驱动程序, 如S3,Microsoft Azure,OpenStack Swift和Aliyun OSS。 考虑使用其他存储后端可以通过编写自己的Storage API的驱动程序来实现。 由于保护对托管镜像的访问权限至关重要,因此Registry本身支持TLS和基本身份验证。
Registry GitHub存储库包含有关高级身份验证和授权方法的其他信息。只有非常大的或公共部署才能以这种方式扩展注册表。
Registry附带了一个强大的通知系统,响应活动调用webhooks,以及广泛的日志记录和报告,这对于想要收集指标的大型安装非常有用。
典型的docker命令中使用的镜像名称反映了它们的来源:
可以在官方Docker引擎文档中找到有关处理图像的各种Docker命令的更多信息。
运行自己的Registry是与CI / CD系统集成和补充的绝佳解决方案。
在典型的工作流程中,对源修订控制系统的提交将触发CI系统上的构建,如果构建成功,则会将新映像推送到Registry。然后,来自Registry的通知将触发暂存环境中的部署,或通知其他系统新镜像可用。
如果您想在大型机器群集上快速部署新镜像,它也是必不可少的组件。
最后,这是在隔离网络中分发镜像的最佳方式。