在国内docker-hub是肯定用不了的,不解释:sweat:。
所以最好还是建一个私有的docker-registry,存储一些常用的images方便随时pull。
相关链接
github:https://github.com/dotcloud/docker-registry
api:http://docs.docker.com/reference/api/registry_api/
安装docker-registry
官方直接给出了一个创建container的命令,在装有docker的机器上运行docker run -d -p 5000:5000 registry
,
这个貌似要下载很多东西,大概500M左右,免去了手工安装的过程,很方便。
安装安成之后直接访问 http://ip:5000
就可以看到
“docker-registry server (dev) (v0.7.3)”
说明安装成功了,更多安装细节,或者配置请参考https://github.com/dotcloud/docker-registry。
push到私有docker-registry
首先解释一下docker中镜像的命名规则,如:registry.domain.com/mycom/base:latest
,这是一个完整的image名称,下面说下各部分的作用
- registry.domain.com: image所在服务器地,如果是官方的hub部分忽略
- mycom:namespace,被称为命名空间,或者说成是你镜像的一个分类
- base:这个是镜像的具体名字
- latest:这是此image的版本号,当然也可能是其它的,如1.1之类的
然后是如何push到私有docker-registry,直接上命令:
docker tag b750fe79269d 127.0.0.1:5000/mycom/base
b750fe79269d
是现有image一个id,你可以从docker hub中pull,或者自己构建image。后面的部分参考上面解释。
这一步的工作主要是给image指定一个服务器地址,让docker知道往哪里push。
然后就是push,命令:
docker push 127.0.0.1:5000/mycom/base
然后等待docker push完成就可以从私有docker-registry中pull或者run了,如:
docker run 127.0.0.1:5000/mycom/base
这里直接使用本机ip,正式使用最好指定一个二级域名,这样ip变了以后也不影响使用。
私有docker-registry的使用
其实http://docs.docker.com/reference/api/registry_api/这里有docker-registry的api,
只是没有如何获取所有image列表的方法,后来查了下,可通过http://127.0.0.1:5000/v1/search查出
如果需要的话建立一个页面,可供查询所有可用的image,同事们就可以随时从你的docker-registry中pull他想要的image,这个速度当然是不言而喻的了,更重要的是不用担心会失败:+1:。