docker-registry使用笔记

时间:2023-03-08 16:25:26

在国内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名称,下面说下各部分的作用

  1. registry.domain.com: image所在服务器地,如果是官方的hub部分忽略
  2. mycom:namespace,被称为命名空间,或者说成是你镜像的一个分类
  3. base:这个是镜像的具体名字
  4. 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:。