温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何进行docker registry 私有仓库的搭建

发布时间:2022-01-11 15:39:18 来源:亿速云 阅读:212 作者:柒染 栏目:开发技术

这期内容当中小编将会给大家带来有关如何进行docker registry 私有仓库的搭建,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

摘要

随着docker使用的镜像越来越多,就需要有一个保存镜像的地方,这就是仓库。目前常用的两种仓库:公共仓库和私有仓库。最方便的就是使用公共仓库上传和下载,下载公共仓库的镜像是不需要注册的,但是上传时,是需要注册的。私有仓库最常用的就是Registry、Harbor两种,那接下来详细介绍如何搭建registry私有仓库。

一、环境准备

两台CentOS7.4,一台为Docker私有仓库;另一台为Docker客户端,测试使用;

二、配置registry私有仓库

#  <!--docker宿主机开启路由功能-->   echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf    <!--刷新配置-->   sysctl -p   net.ipv4.ip_forward = 1   <!--配置镜像加速-->   vim /etc/docker/daemon.json    <!--添加阿里云加速-->    {"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]}    <!--重新启动docker服务-->   systemctl reload docker   <!--查找registry镜像-->   docker search registry   docker pull registry   <!--registry镜像可以直接先pull下来,也可以不下载,根据自己情况而定-->   docker run -d -p 5000:5000 --name registry --restart=always -v /opt/registry:/var/lib/registry registry   <!--查看docker运行的容器-->   docker ps   <!--查看docker所有镜像-->   docker images     <!--配置docker服务支持registry服务-->   vim /etc/docker/daemon.json    {"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"], "insecure-registries":["192.168.100.10:5000"]  <!--添加此行--> }   <!--重新启动docker服务-->   systemctl reload docker    docker info

如何进行docker registry 私有仓库的搭建

如何进行docker registry 私有仓库的搭建

如何进行docker registry 私有仓库的搭建

如何进行docker registry 私有仓库的搭建

如何进行docker registry 私有仓库的搭建

三、上传与下载镜像

# 给镜像打标签   docker tag mysql 192.168.25.140:5000/mysql   # 上传的镜像   docker push 192.168.25.140:5000/mysql     <!--客户端安装docker服务,配置镜像加速-->   <!--配置docker支持registry服务 -->   vim /etc/docker/daemon.json    {"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"], "insecure-registries":["192.168.100.10:5000"]  <!--添加此行--> }   <!--重新启动docker服务-->   systemctl restart docker     <!--客户端下载私有仓库中的镜像-->   docker pull 192.168.25.140:5000/mysql    docker images <!--查看镜像是否下载成功-->

如何进行docker registry 私有仓库的搭建

如何进行docker registry 私有仓库的搭建

四、配置registry加载身份验证

但是现在存在一个问题,如果这也部署的话企业内部所有人员皆可访问我们的私有仓库,为了安全起见,接下来为registry添加一个身份验证,只有通过了身份验证才可以上传或者下载私有仓库中的镜像。

<!--安装加密工具httpd-tools-->   yum -y install httpd-tools     <!--创建存放验证密钥目录-->   mkdir /opt/registry-auth   <!--配置registry身份验证数据库--> <!--"-Bbn”参数解释:B强制密码加密;b在命令中输入密码,不提示输入密码;n不更新密钥文件-->   htpasswd -Bbn bob pwd@123 > /opt/registry-auth/htpasswd   <!--删除此服务器上的所有容器,接下来重新生成一个需要身份验证的私有仓库容器-->    docker run -d -p 5000:5000 --restart=always \ -v /opt/registry-auth/:/auth/ \ -v /opt/registry:/var/lib/registry --name registry-auth -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry    <!--重新运行一个支持身份验证的registry私有镜像仓库容器-->   docker tag tomcat:latest 192.168.100.10:5000/image/tomcat:1.0    docker push 192.168.100.10:5000/image/tomcat:1.0   <!--测试不通过身份验证是否可以往私有仓库上传镜像-->   <!--提示没有身份验证,上传不了-->   no basic auth credentials   <!--登录私有镜像仓库,通过身份验证即可上传-->   docker login 192.168.100.10:5000    Username: bob   <!--输入bob--> Password:    <!--输入密码-->   <!--再次上传镜像到私有仓库-->   docker push 192.168.100.10:5000/image/tomcat:1.0    <!--docker客户端不通过身份验证直接下载私有仓库中的镜像直接被拒绝-->   docker pull 192.168.100.10:5000/image/tomcat:1.0   Error response from daemon: Get http://192.168.100.10:5000/v2/image/tomcat/manifests/1.0: no basic auth credentials   <!--登录私有仓库,通过身份验证--> docker login 192.168.100.10:5000    Username: bob  <!--输入bob--> Password:     <!--输入密码-->   docker pull 192.168.100.10:5000/image/tomcat:1.0 <!--下载私有仓库中的镜像-->   <!--查看docker客户端镜像-->   docker images

五、 docker registry 私有仓库查询、删除

修改tag (以hello-world为例)

拉取镜像   docker pull hello-world   修改镜像   docker tag  hello-world  hub.test.com:5000/hello-world:1.0   上传、删除、再下载镜像,删除后能下载成功   docker images   docker push  hub.test.com:5000/hello-world:1.0   docker rmi hub.test.com:5000/hello-world:1.0   docker images   docker pull  hub.test.com:5000/hello-world:1.0   docker images

 查看仓库镜像

curl hub.test.com:5000/v2/_catalog

registry开启删除

#查看默认配置 docker exec -it  registry sh -c 'cat /etc/docker/registry/config.yml' #开启删除(添加  delete: enabled: true) docker exec -it  registry sh -c "sed -i '/storage:/a\  delete:' /etc/docker/registry/config.yml" docker exec -it  registry sh -c "sed -i '/delete:/a\    enabled: true' /etc/docker/registry/config.yml" #重启 docker restart registry

查询、删除镜像 

#查询镜像 curl  <仓库地址>/v2/_catalog   #查询镜像tag(版本) curl  <仓库地址>/v2/<镜像名>/tags/list   #删除镜像API curl -I -X DELETE "<仓库地址>/v2/<镜像名>/manifests/<镜像digest_hash>"   #获取镜像digest_hash curl  <仓库地址>/v2/<镜像名>/manifests/<tag> \     --header "Accept: application/vnd.docker.distribution.manifest.v2+json"

上述就是小编为大家分享的如何进行docker registry 私有仓库的搭建了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI