网站运营
位置:首页>> 网站运营>> Docker私有仓库Registry部署的实现

Docker私有仓库Registry部署的实现

作者:俊伟祺i  发布时间:2021-03-06 18:15:41 

标签:Docker,私有仓库,Registry

随着docker使用的镜像越来越多,就需要有一个保存镜像的地方,这就是仓库。目前常用的两种仓库:公共仓库和私有仓库。最方便的就是使用公共仓库上传和下载,下载公共仓库的镜像是不需要注册的,但是上传时,是需要注册的。

私有仓库最常用的就是Registry、Harbor两种,那接下来详细介绍如何搭建registry私有仓库,Harbor将在下一篇博文部署。

一、部署Registry私有仓库

案例描述

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

两台服务器都需要安装Docker服务,请参考博文:安装Docker.v19版本

1、配置registry私有仓库


[root@centos01 ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf  
   <!--docker宿主机开启路由功能-->
[root@centos01 ~]# sysctl -p  <!--刷新配置-->
net.ipv4.ip_forward = 1
[root@centos01 ~]# vim /etc/docker/daemon.json  <!--配置镜像加速-->
{"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]}  <!--添加阿里云加速-->
[root@centos01 ~]# systemctl reload docker <!--重新启动docker服务-->
[root@centos01 ~]# docker search registry <!--查找registry镜像-->
<!--registry镜像可以直接先pull下来,也可以不下载,根据自己情况而定-->
[root@centos01 ~]# docker run -d -p 5000:5000 --name registry --restart=always -v /opt/registry:/var/lib/registry registry
<!--运行registry容器,运行registry服务存储自己的镜像-->
<!--"--restart=always"参数是指此容器跟随docker服务启动而启动-->
[root@centos01 ~]# docker ps  <!--查看docker运行的容器-->
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMES
a7773d77b8a3    registry      "/entrypoint.sh /etc…"  50 seconds ago   Up 46 seconds    0.0.0.0:5000->5000/tcp  registry
[root@centos01 ~]# docker images  <!--查看docker所有镜像-->
REPOSITORY          TAG         IMAGE ID      CREATED       SIZE
registry           latest       708bc6af7e5e    3 months ago    25.8MB
tomcat            latest       1b6b1fe7261e    5 days ago     647MB
hub.c.163.com/public/centos  6.7-tools      b2ab0ed558bb    3 years ago     602MB
[root@centos01 ~]# vim /etc/docker/daemon.json <!--配置docker服务支持registry服务-->
{"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"],
"insecure-registries":["192.168.100.10:5000"]  <!--添加此行-->
}
[root@centos01 ~]# systemctl reload docker  <!--重新启动docker服务-->

2、上传镜像到registry私有仓库


[root@centos01 ~]# docker tag hub.c.163.com/public/centos:6.7-tools 192.168.100.10:5000/image/centos:6.7  
   <!--修改镜像标签-->
[root@centos01 ~]# docker push 192.168.100.10:5000/image/centos:6.7 <!--上传镜像到registry私有仓库-->

二、配置Docker客户端访问私有仓库


<!--客户端安装docker服务,配置镜像加速-->
[root@centos02 ~]# vim /etc/docker/daemon.json  <!--配置docker支持registry服务 -->
{"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"],
"insecure-registries":["192.168.100.10:5000"]  <!--添加此行-->
}
[root@centos02 ~]# systemctl restart docker  <!--重新启动docker服务-->
[root@centos02 ~]# docker pull 192.168.100.10:5000/image/centos:6.7
        <!--客户端下载私有仓库中的镜像-->
[root@centos02 ~]# docker images <!--查看镜像是否下载成功-->
REPOSITORY             TAG         IMAGE ID      CREATED       SIZE
192.168.100.10:5000/image/centos  6.7         b2ab0ed558bb    3 years ago     602MB

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

三、配置registry加载身份验证


[root@centos01 ~]# yum -y install httpd-tools  <!--安装加密工具httpd-tools-->
[root@centos01 ~]# mkdir /opt/registry-auth <!--创建存放验证密钥目录-->
[root@centos01 ~]# htpasswd -Bbn bob pwd@123 > /opt/registry-auth/htpasswd
<!--配置registry身份验证数据库-->
<!--"-Bbn”参数解释:B强制密码加密;b在命令中输入密码,不提示输入密码;n不更新密钥文件-->

<!--删除此服务器上的所有容器,接下来重新生成一个需要身份验证的私有仓库容器-->
[root@centos01 ~]# 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私有镜像仓库容器-->
[root@centos01 ~]# docker tag tomcat:latest 192.168.100.10:5000/image/tomcat:1.0
   <!--镜像修改标签-->
[root@centos01 ~]# docker push 192.168.100.10:5000/image/tomcat:1.0
<!--测试不通过身份验证是否可以往私有仓库上传镜像-->
no basic auth credentials
<!--提示没有身份验证,上传不了-->
[root@centos01 ~]# docker login 192.168.100.10:5000
   <!--登录私有镜像仓库,通过身份验证即可上传-->
Username: bob   <!--输入bob-->
Password:    <!--输入密码-->
……………… <!--此处省略部分内容-->
Login Succeeded     <!--已通过身份验证,此时可以上传镜像到私有仓库-->
[root@centos01 ~]# docker push 192.168.100.10:5000/image/tomcat:1.0 <!--再次上传镜像到私有仓库-->
The push refers to repository [192.168.100.10:5000/image/tomcat]
b0ac242ce8d3: Pushed
5e71d8e4cd3d: Pushed
eb4497d7dab7: Pushed
bfbfe00b44fc: Pushed
d39111fb2602: Pushed
155d997ed77c: Pushed
88cfc2fcd059: Pushed
760e8d95cf58: Pushed
7cc1c2d7e744: Pushed
8c02234b8605: Pushed
1.0: digest: sha256:55b41e0290d32d6888aee2e9a15f03cc88d2f49d5ad68892c54b9527d0ed181c size: 2421
[root@centos02 ~]# docker pull 192.168.100.10:5000/image/tomcat:1.0
<!--docker客户端不通过身份验证直接下载私有仓库中的镜像直接被拒绝-->
Error response from daemon: Get http://192.168.100.10:5000/v2/image/tomcat/manifests/1.0: no basic auth credentials
[root@centos02 ~]# docker login 192.168.100.10:5000
   <!--登录私有仓库,通过身份验证-->
Username: bob  <!--输入bob-->
Password:     <!--输入密码-->
Login Succeeded   <!--通过身份验证-->
[root@centos02 ~]# docker pull 192.168.100.10:5000/image/tomcat:1.0 <!--下载私有仓库中的镜像-->
1.0: Pulling from image/tomcat
376057ac6fa1: Pull complete
5a63a0a859d8: Pull complete
496548a8c952: Pull complete
2adae3950d4d: Pull complete
0a297eafb9ac: Pull complete
09a4142c5c9d: Pull complete
9e78d9befa39: Pull complete
18f492f90b9c: Pull complete
7834493ec6cd: Pull complete
216b2be21722: Pull complete
Digest: sha256:55b41e0290d32d6888aee2e9a15f03cc88d2f49d5ad68892c54b9527d0ed181c
Status: Downloaded newer image for 192.168.100.10:5000/image/tomcat:1.0
192.168.100.10:5000/image/tomcat:1.0
[root@centos02 ~]# docker images  <!--查看docker客户端镜像-->
REPOSITORY             TAG         IMAGE ID      CREATED       SIZE
192.168.100.10:5000/image/tomcat  1.0         1b6b1fe7261e    5 days ago     647MB
192.168.100.10:5000/image/centos  6.7         b2ab0ed558bb    3 years ago     602MB

来源:https://blog.51cto.com/14156658/2498785

0
投稿

猜你喜欢

  • 北京时间11月13日消息,据国外媒体报道,谷歌旗下视频共享网站YouTube周四表示,从下周开始,该网站将支持1080p格式的全高清视频内容
  • 今天一个朋友用的dedecms织梦内容管理系统架设的网站出问题了,由于前期的安全工作没做到位,网站是可以随意注册会员及其发表文章的,所以该网
  • 北京时间11月11日上午消息,据国外媒体今日报道,&ldquo;PHP之父&rdquo;拉斯姆斯&middot;勒多
  • FTP站点是因特网上比较重要的资源,但是登录FTP网站和操作FTP站点上的文件或文件夹仍然比较繁琐。我们知道,在资源管理器器可以把一个远程电
  • 五年以前创办淘宝的时候,是一个梦想,我说我们希望通过五年、十年的努力,在中国诞生一个最伟大、最优秀的电子商务公司,超过我们那个时候的竞争对手
  • 10月14日消息,瑞士信贷周二表示,受惠于2010年上半年对于新款服务器芯片-Nehalem的强劲需求,将有助于提高英特尔的收入。瑞士信贷因
  • Internet正以空前的速度深入千家万户,不少公司或个人在网络上建立起主页和站点。公司通过网站发布产品信息、提供服务、寻求商业契机;而个人
  • 在用TCP/IP协议族架设的网络中,每一个节点都有一个唯一的IP地址,用来作为它们唯一的标志。然而,如果让使用者来记住这些毫无记忆规律的IP
  • 一般来说,dmoz收录网站没有绝对地标准,但是遵循一些标准,会提高收录机会的。1、内容要原创,抄袭的内容会被认为没有价值而被拒绝;2、网站空
  • 首先下载VMware安装包:双击安装:点击:“uninstall”安装,这个过程需要一些时间点击“Next”选择典型或者自定义安装这里我选择
  • 最新消息,美国主机商ixwebhosting推出中文客服,其中文站(cn.IXWebHosting.com)已经在网站顶部提示,“中文liv
  • 种种迹象表明百度Hi马上就要公测了,相信在不久的几天大家就可以共同使用了,作为意外可以登录百度Hi而的用户,还是先做个比较详细的图解让大家看
  • 北京时间11月9日早间消息,据国外媒体今日报道,Facebook计划发布一款XMPP(可扩展消息处理现场协议)界面,进入即时通讯领域。Fac
  • 最近我们的小团队需要在服务器上共分出一个共享文件夹用于大家存放公共的资源文档, 大家想啊,这肯定很简单呀,在Windows下面只要创建相关的
  • 在博客一年的时间里,就我个人而言,我学到了很多东西,不管是博客以外还是以内的,如果你还没有建立自己的博客,我建议你马上建立,并固定地更新,你
  • 最近单位局域网电脑上网,大多数网站页面显示都会异常,卡巴在访问网站的时候会提示“"木马程序Trojan-Downloader.JS
  • 虽然这些年来,每一个新发布的新版Exchange Server都保留了先前版本的一些特征,但是某些版本和其他的版本相比较而言,还是有了更多的
  • 本文主要讲述如何分析Web服务器记录,在众多记录里查找黑客攻击的蛛丝马迹,并针对当今流行的两类Web服务器给出具体的一些实例。现今的网络,安
  • 各位 Google AdSense 发布商您好,如果10月份您选择的付款方式为西联汇款,现在开始您就可以去领取您的西联汇款的收入了!领取西联
  • etang最近服务器出问题了,看看,这个曾经获得过接近5000万美金风险投资的网站,今天孤零零的只剩下大学四六级查分的工具了。etang曾经
手机版 网站运营 asp之家 www.aspxhome.com