在国内docker-hub是肯定用不了的,不解释😓。所以最好还是建一个私有的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/baseb750fe79269d 是现有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,这个速度当然是不言而喻的了,更重要的是不用担心会失败👍。