摘要:与业务相关的镜像可以使用私有的,提高安全性。其后端存储方案有两个。能不能使用国内存储服务如新浪云存储,做一个私有呢在进一步了解的过程中,笔者了解到实际上服务本身提供机制,可以整合更多的存储服务整合。
最近使用Docker的同学越来越多。
使用Docker的时候需要了解Registry服务 - 即镜像存储服务。
Registry是一个管理Docker镜像的服务,当使用Docker的Push, Pull等操作时实际上都是与Registry服务进行交互,类似本地Git和远程Git Repository的关系。
DockerHub作为默认的Registry服务提供非常多的公共镜像,并且为每个注册者提供10个私有Repository。
早些时候在国内访问 DockerHub (前身域名为 index.docker.io) 经常被墙,需要使用代理访问,后来DockerHub改用AWS提供的CloudFront作为CDN服务解决了这个问题,访问速度也有了一定的改善。
我们能不能自己做一个私有的Registry服务?这样有几方面的好处。
与业务相关的镜像可以使用私有的Registry,提高安全性。
选择稳定的后端存储服务,可以提高数据可靠性,并且访问速度也相对很快。
实际上Docker官方已经有一个开源版Registry服务,Python写的。其后端存储方案有两个。
本地存储,适合做开发测试环境用,不建议在生产环境使用。
AWS S3服务,国内访问速度不是很好。
能不能使用国内存储服务(如新浪云存储),做一个私有Registry呢?
在进一步了解的过程中,笔者了解到实际上Registry服务本身提供Driver机制,可以整合更多的存储服务整合。
于是,利用中秋休假的时间,写了这样的一个Driver。
https://pypi.python.org/pypi/docker-registry-driver-sinastorage/
安装部署:
需要有一个Docker运行环境,如CoreOS, Ubuntu14, CentOS7。
运行如下命令:
# 使用之前申请好的账号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
注:
每次Commit都是增量备份,所以使用中并不会占用太多的容量,上传下载都很快。
若希望看到之前上传的镜像,可以在控制台中的 BUCKET -> repositories -> libraray 中查看。
Driver本身通过了所有Registry提供的测试用例,笔者自己使用的时候未遇到问题。但性能和稳定性等方面还需优化。不建议立即在生产环境中使用,也欢迎Contribute。
Github: https://github.com/kerwin/docker-registry-driver-sinastorage
DockerHub: https://registry.hub.docker.com/u/kerwin/docker-registry-sinastorage/
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/26332.html
摘要:包括两个关键组成部分和。简单理解,第一个是负责存储的,第二个是负责管理镜像的。使用阿里云的保存镜像文件默认镜像文件存到本地磁盘,这个可扩展性不是很好,我们可以把镜像文件存到中。注查询网址阿里云的其他参数查询网址 Docker Registry简介 Docker Registry是开源的软件,可以进行存储和分发Docker镜像。Docker Registry包括两个关键组成部分:Doc...
摘要:联调测试,无需依赖他人。针对以上问题,有两种解决方法,一个是自己搭建私有服务,另一个是用云服务的镜像管理平台如阿里云的容器镜像服务。利用,先对阿里云的服务进行登录。推送后,就能在阿里云的仓库上看到这个镜像。 Docker简述 Docker是一种OS虚拟化技术,是一个开源的应用容器引擎。它可以让开发者将应用打包到一个可移植的容器中,并且该容器可以运行在几乎所有linux系统中(Windo...
摘要:本文章用于描述如何从零开始进行阿里云仓库的搭建,以及过程中遇到的相关问题。涉及的内容包括,,,,。目标硬盘挂载阿里云额外购买的硬盘服务,需要仅挂载后才可以正常使用。域名代理免费代理的域名通过阿里云域名解析暴露到外网。 本文章用于描述如何从零开始进行阿里云仓库的搭建,以及过程中遇到的相关问题。涉及的内容包括Docker,Nginx,Nexus,Gitlab,Https。 背景 需要搭建一...
摘要:前言最近开始研究的应用,于是打算搭建一个私有的仓库,并使用阿里云的作为存储引擎。登陆成功后,执行以下命令即可上传配置阿里云首先在刚才执行的命令行窗口中按退出服务。待上传完毕,可以打开阿里云的控制台界面检查文件是否被正确上传上去了。 前言 最近开始研究 Docker 的应用,于是打算 搭建一个私有的 Docker 仓库,并使用阿里云的 OSS 作为存储引擎 。从网上搜索到的资料大都是比较...
阅读 1771·2021-11-15 11:37
阅读 3043·2021-11-04 16:05
阅读 1910·2021-10-27 14:18
阅读 2741·2021-08-12 13:30
阅读 2485·2019-08-29 14:18
阅读 2076·2019-08-29 13:07
阅读 2004·2019-08-27 10:54
阅读 2713·2019-08-26 12:15