docker registry  搭建本地私有仓库

kevin.Zhu 发布于:2017-6-5 0:27 分类:Linux  有 21 人浏览,获得评论 0 条  

http://blog.csdn.net/felix_yujing/article/details/51564739  #搭建教程


https://github.com/docker/distribution/blob/master/docs/spec/api.md  #docker registry V2 API手册


http://www.open-open.com/lib/view/open1456539405281.html  #搭建教程

 

http://blog.csdn.net/wanglei_storage/article/details/53126690   #docker registry v2 ssl 环境搭建


https://segmentfault.com/a/1190000000801162  #nginx + ssl + docker registry 搭建

 

 

http://blog.csdn.net/renhuailin/article/details/50461651   #为docker私有registry配置nginx反向代理

最简单的搭建方法:

1. 在 /etc/default/docker 配置文件中增加 DOCKER_OPTS="--insecure-registry=xx.xx.xxx.xx:xxx"  指定使用Http协议 

2. 运行以下命令 启动一个最简单的 registry 

docker run -d -p 5000:5000 --restart=always  -v /opt/registry-var/:/var/lib/registry/  registry


3. 制作镜像, 镜像的前缀需要带上IP和端口号 ,如:xx.xx.xxx.xxx:xxx/zhukf/centos-xx-xxx:v1

4. Push制作好的镜像

创建一个需要账号密码登录的 registry 

docker run --entrypoint htpasswd registry -Bbn felix felix  >> /opt/registry-var/auth/htpasswd

上面这条命令是为felix用户名生成密码为felix的一条用户信息,存在/opt/registry-var/auth/htpasswd文件里面,文件中存的密码是被加密过的。
使用带用户权限的registry时候,容器的启动命令就跟上面不一样了,将之前的容器停掉并删除,然后执行下面的命令:


docker run -d -p 5000:5000 --restart=always \
  -v /opt/registry-var/auth/:/auth/ \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  -v /opt/registry-var/:/var/lib/registry/ \
  registry

这时,如果直接想查看仓库信息、pull或push都会出现权限报错。必须先使用docker login 命令来登录私有仓库:

docker login 192.168.0.100:5000


查看本地仓库的镜像信息 (见API) : curl -X GET -u 用户名:密码  http://xx.xx.xxx.xxx:xxxx/v2/_catalog