关于使用镜像仓库的思考
现在比较主流的镜像仓库 是 registry 和 harbor
使用registry 镜像仓库,通过api 能抓去最新的 镜像
例如
registry API
curl https://docker.cinyi.com/v2/_catalog curl https://docker.cinyi.com/v2/senyint/nginx/tags/list
生产环境 jenkins 调用 python脚本,返回测试环境最后打的tag 的镜像
#!/usr/bin/env python import commands from sys import argv def gettags(name): line=commands.getstatusoutput('curl -sl https://docker.cinyi.com/v2/'+ name + '/tags/list') dictline = eval(line[1]) print 'docker.cinyi.com:443/' + name + ':' + dictline["tags"][-1] if __name__ == '__main__': prometheos = argv[1] gettags(prometheos)
[root@registry ~]# python getdockerimage.py senyint/nginx
docker.cinyi.com:443/senyint/nginx:v.12
测试环境 使用 jenkins 发版 上传 images到 registry , 生产环境发版 直接调用 测试环境最后一个镜像, 前提是 configmap 映射的 环境变量名相同,比如:MYSQLSERVER
而使用 harbor 镜像仓库,图形页面比较方便操作,
curl -u admin:admin -X GET -H "Content-Type:application/json" http://docker.senyint.com/api/projects/
#注意 senyint/nginx 需要使用 %2F替换
[root@harbor data]# curl -u admin:admin -X GET -H "Content-Type:application/json" http://docker.senyint.com/api/repositories/senyint%2Fnginx/tags/v.10
#能够查看 tags
curl -u admin:admin -X GET -H "Content-Type:application/json" http://docker.senyint.com/api/repositories/senyint%2Fnginx/tags/