小知识:Docker私有仓库Registry部署的实现

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

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

一、部署Registry私有仓库

案例描述

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

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

1、配置registry私有仓库

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[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私有仓库

?
1
2
3
[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客户端访问私有仓库

?
1
2
3
4
5
6
7
8
9
10
11
<!–客户端安装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加载身份验证

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[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

到此这篇关于Docker私有仓库Registry部署的实现的文章就介绍到这了,更多相关Docker私有仓库Registry内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.51cto.com/14156658/2498785

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:linux 不改变目录结构移动 home 目录到新分区的操作方法

2023-3-29 23:45:07

建站知识

小知识:Docker.v19安装和配置Docker Compose编排工具的方法

2023-3-29 23:52:33

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索