dockerRegistry搭建

docker registry安装:

官方仓库下载registry
 
 
pull镜像:
  1. fu@ubuntu:~$ sudo docker pull registry

  

运行镜像 :
  1. sudo docker run -d -p 5000:5000 --restart=always -v /home/registry/data:/tmp/registry-dev --name registry registry:latest

 
浏览器中查看registry:
返回:{}
返回:{"repositories":[]}

准备一个标准tag,用于上传
  1. sudo docker tag <id> 99fu.cn/fu/registry:latest


如果此时直接push:报错http: server gave HTTP response to HTTPS client
  1. root@ubuntu:/# docker push 192.168.1.110:5000/fu/hello-world
  2. The push refers to a repository [192.168.1.110:5000/fu/hello-world]
  3. Get https://192.168.1.110:5000/v1/_ping: http: server gave HTTP response to HTTPS client
解决以上问题:
新建或者修改daemon.json
  1. root@ubuntu:/# echo '{ "insecure-registries":["192.168.1.110:5000"] }' > /etc/docker/daemon.json

注: 可以将192.168.1.110:5000 改成 99fu.cn:5000 然后将/etc/hosts 中加入 192.168.1.110    99fu.cn
重启:
  1. root@ubuntu:/# service docker restart
  2. docker stop/waiting
  3. docker start/running, process 3558
  4. root@ubuntu:/# docker push 192.168.1.110:5000/fu/hello-world
  5. The push refers to a repository [192.168.1.110:5000/fu/hello-world]
  6. a02596fdd012: Pushed
  7. latest: digest: sha256:a18ed77532f6d6781500db650194e0f9396ba5f05f8b50d4046b294ae5f83aa4 size: 524

  此时,再在浏览器中访问:
返回值:
{"repositories":["fu/hello-world"]}

从别的机器上,上传到registry上:
在 /etc/hosts   中加上 192.168.1.110    99fu.cn
将从官网pull或者自己build的镜像,打上标准的tag
  1. fu@ubuntu:~$ sudo docker tag 285 99fu.cn:5000/centos:centos7.1.1503
  2. fu@ubuntu:~$ sudo docker images

注:    285 为centos镜像的id简写,能区分就行
 
 然后 push到registry中
 
然后浏览器中查看:http://192.168.6.73:5000/v2/_catalog
{"repositories":["centos","fu/centos","fu/hello-world","fu/jdk","fu/jenkins","fu/jre","fu/mysql","fu/registry","registry","ubuntu"]}

利用api访问更多信息:http://blog.csdn.net/ztsinghua/article/details/51496658
如:http://192.168.6.73:5000/v2/fu/registry/tags/list 
 




原文地址:https://www.cnblogs.com/99fu/p/6042781.html