首页 > Docker > Centos 7.x 使用Docker registry镜像创建私有仓库
Centos 7.x 使用Docker registry镜像创建私有仓库
2015年7月15日 6,067 浏览数 发表评论 阅读评论

有时候使用 Docker Hub 这样的公共仓库可能不方便,并且公司的私有镜像为了业务安全,也不会push到docker hub上,用户可以创建一个本地仓库供私人使用。类似于git 和maven一样,同时节省服务器下载和上传镜像带宽。

那什么是docker registry呢

Docker Registry由三个部分组成:index,registry,registry client。

可以把Index认为是负责登录、负责认证、负责存储镜像信息和负责对外显示的外部实现,而registry则是负责存储镜像的内部实现,而Registry Client则是docker客户端。

我这台服务器已经安装docker1.6版本,至于怎么安装我就不多说了,可以参考这里,centos上部署docker

安装docker-registry

如果本地没有下载过docker-registry,则首次会pull registry 运行时会映射路径和端口,以后就可以从/data/registry下找到私有仓库,这里查看下我本机的镜像

从上面信息可以分别看出

  • 来自于哪个仓库,比如 centos
  • 镜像的标记,比如 latest 最后一个版本
  • 它的 ID 号(唯一)
  • 创建时间
  • 镜像大小

可以看到registry容器已经启动

访问私有仓库

因为我们还没有像私有容器提交镜像,所以这里返回空,下面我们提交一个镜像试试,上面可以看到我本地有一个registry的镜像

使用docker tag 将我本地的id为7322fb474aa5的这个镜像标记为 127.0.0.1:5000/centos

命令格式为 docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

镜像的 ID 唯一标识了镜像,注意到 docker.io/centos和 127.0.0.1:5000/centos具有相同的镜像 ID,说明它们实际上是同一镜像。

PUSH 镜像

然后我们将这个镜像push到私有镜像库

然后我么拿在看下私有仓库中有没有镜像

可以看到一家有个叫centos的镜像存在了,就是我刚刚上传的镜像。然后你的其他服务器就可以来下载这个镜像使用了

如果本地有很多镜像想批量上传怎么办,可以用这个脚本

这里大家可以看到,访问我们私有库的时候,没有任何权限控制,也就是说别人知道这个仓库地址也可以push 和pull镜像,这样很不安全,大家可以在网络层面,也可以前面加层nginx,然后nginx反向代理本地的5000端口

分类: Docker 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.