Linux7环境中部署Docker私有仓库Registry实战文档

1.前言

  • 本文档所面对的学习对象如下:
  1.               Linux系统管理员;
  2.               数据中心运维人员。
  • 本文档全部原创,实际操作完成次数超过十次以上,读者可放心按照顺序进行操作。
  • 本文档的实际操作系统平台为Oracle Linux7.9系统,同样适用于Redhat、CentOS的对应版本Linux系统(需对部分系统配置进行简单更改即可)。
  • 请尊重原创。

2.系统准备

  • 虚拟化软件,VMware workstations Pro 16.1,可自行下载;
  • 操作系统1:Oracle Linux 7.9,IP地址192.168.31.61,已经部署docker,用于测试;
  • 操作系统2:Oracle Linux 7.9,IP地址192.168.31.51,已经部署docker,用于搭建Registry本地仓库;
  • 连接工具:MobaXterm_Personal_20.5,可自行下载。

注:详细docker部署文档请参考笔者发布的其他文档。

3.关于Registry

Docker的Docker hub是一个用于管理公共镜像的官方仓库,我们可以在上面找到我们想要的大部分镜像,也可以把我们自己的镜像推送上去。但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像。这个可以通过开源软件Registry来达成目的。

Registry在Docker hub上提供了registry的镜像,我们可以直接使用该registry镜像来构建一个容器,搭建我们自己的私有仓库服务。

4.Registry部署

4.1查看docker状态

[root@oel79 ~]# systemctl status docker

4.2下载Registry镜像

[root@oel79 ~]# docker pull registry

 

4.3启动Registry容器

[root@oel79 ~]# docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest

094887e3ba2db82d13246a6584a60404565f45d2dd55e9378a8d61dd7bf2152d

[root@oel79 ~]#

注:Registry服务默认会将上传的镜像保存在容器的/var/lib/registry目录,并且将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录。

4.4查看镜像和容器

[root@oel79 ~]# docker images

[root@oel79 ~]# docker ps

4.5检查Registry运行状态

当Registry容器正常启动之后,我们可以打开浏览器,访问http://192.168.31.51:5000/v2,如果看到如下页面内容,说明Registry容器运行正常。

 

5.镜像上传

5.1下载测试镜像

从官方仓库下载一个我们要用来测试的镜像,下面我们将下载一个vsftpd镜像进行测试。

[root@oel79 ~]# docker pull rhrn/vsftpd

[root@oel79 ~]# docker images

5.2镜像命名

为了区别于其他镜像,我们将用来测试的镜像进行命名,也可以说是加tag。

[root@oel79 ~]# docker tag rhrn/vsftpd:latest 192.168.31.51:5000/rhrn/vsftpd:latest

[root@oel79 ~]# docker images

5.3上传镜像到本地仓库

把前面我们用来测试的镜像,上传到Registry仓库。

[root@oel79 ~]# docker push 192.168.31.51:5000/rhrn/vsftpd

如下图,上传镜像的操作很可能会遇到如下错误,这时因为Docker 引擎默认通过https 协议与Docker Registry 通信,所以如果搭建的Docker 私有镜像库是http 协议的话,就会输出错误提示。

这时需要修改客户端docker的配置文件/usr/lib/systemd/system/docker.service,在其中的ExecStart选项,后面加入--insecure-registry {docker 私有镜像库 IP} --ipv6=false,如下图。

 然后运行以下两条命令,重新载入核心进程,并重启docker服务。

[root@oel79 ~]# systemctl daemon-reload

[root@oel79 ~]# systemctl restart docker

5.4查看已上传的镜像

  • 进入系统/opt/registry目录,查看已经上传的镜像。

通过HTTP查看已上传的镜像。

​​​​​​​

6.测试Registry本地仓库的可用性

6.1本地测试

6.1.1删除本地镜像

[root@oel79 rhrn]# docker images

[root@oel79 rhrn]# docker rmi rhrn/vsftpd

[root@oel79 rhrn]# docker rmi 192.168.31.51:5000/rhrn/vsftpd

 6.1.2镜像下载

[root@oel79 rhrn]# docker pull 192.168.31.51:5000/rhrn/vsftpd

[root@oel79 rhrn]# docker images

 

6.2客户端测试

6.2.1检查服务状态和镜像

[root@oel79 system]# systemctl status docker

[root@oel79 system]# docker images

 6.2.2镜像下载

[root@oel79 system]# docker pull 192.168.31.51:5000/rhrn/vsftpd

[root@oel79 system]# docker images

如果在这一步依旧有“http: server gave HTTP responsnt”的错误提示,按照前面所说的解决办法进行配置文件的修改即可。

至此,我们的Registry私有仓库搭建完成。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萧天天天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值