最近使用Docker的同窗愈来愈多。python
使用Docker的时候须要了解Registry服务 - 即镜像存储服务。git
Registry是一个管理Docker镜像的服务,当使用Docker的Push, Pull等操做时实际上都是与Registry服务进行交互,相似本地Git和远程Git Repository的关系。github
DockerHub
做为默认的Registry服务提供很是多的公共镜像,而且为每一个注册者提供10个私有Repository。docker
早些时候在国内访问 DockerHub (前身域名为 index.docker.io) 常常被墙,须要使用代理访问,后来DockerHub改用AWS提供的CloudFront做为CDN服务解决了这个问题,访问速度也有了必定的改善。ubuntu
咱们能不能本身作一个私有的Registry服务?这样有几方面的好处。后端
实际上Docker官方已经有一个开源版Registry服务,Python写的。其后端存储方案有两个。安全
能不能使用国内存储服务(如新浪云存储
),作一个私有Registry呢?性能
在进一步了解的过程当中,笔者了解到实际上Registry服务自己提供Driver机制,能够整合更多的存储服务整合。测试
因而,利用中秋休假的时间,写了这样的一个Driver。优化
https://pypi.python.org/pypi/docker-registry-driver-sinastorage/
安装部署:
运行以下命令:
# 使用以前申请好的帐号Key及想要的Bucket名称,代替YOUR_*部分。 docker run -d \ -e SETTINGS_FLAVOR=sinastorage \ -e SINASTORAGE_BUCKET=YOUR_BUCKET \ -e SINASTORAGE_ACCESSKEY=YOUR_ACCESSKEY \ -e SINASTORAGE_SECRETKEY=YOUR_SECRETKEY \ -p 5000:5000 --name registry kerwin/docker-registry-sinastorage
这样命令会在本地启动5000端口的服务, 如何使用:
docker tag ubuntu localhost:5000/ubuntu docker push localhost:5000/ubuntu # 这样上传了一个ubuntu的基本镜像。任什么时候刻想要用到原来镜像的时候: docker pull localhost:5000/ubuntu
注: