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