Docker私有仓库Registry部署的实现

Docker私有仓库Registry部署的实现,第1张

Docker私有仓库Registry部署的实现

本文主要介绍Docker私有仓库注册表部署的实现。最常用的私人仓库是注册和港口。本文详细介绍了如何构建私有仓库注册表。有兴趣的可以看看。

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

最常用的私人仓库是注册和港口。然后,如何搭建Registry私有仓库将在下一篇博文中详细描述,Harbor将在下一篇博文中部署。

一、部署注册库私有仓库

案例描述

两个CentOS7.4,一个为Docker私仓;另一个是Docker客户端,测试使用;

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

1.配置注册表私有仓库

[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~]#systemctlreloaddocker<!--重新启动docker服务--> [root@centos01~]#dockersearchregistry<!--查找registry镜像--> <!--registry镜像可以直接先pull下来,也可以不下载,根据自己情况而定--> [root@centos01~]#dockerrun-d-p5000:5000--nameregistry--restart=always-v/opt/registry:/var/lib/registryregistry <!--运行registry容器,运行registry服务存储自己的镜像--> <!--"--restart=always"参数是指此容器跟随docker服务启动而启动--> [root@centos01~]#dockerps<!--查看docker运行的容器--> CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES a7773d77b8a3registry"/entrypoint.sh/etc…"50secondsagoUp46seconds0.0.0.0:5000->5000/tcpregistry [root@centos01~]#dockerimages<!--查看docker所有镜像--> REPOSITORYTAGIMAGEIDCREATEDSIZE registrylatest708bc6af7e5e3monthsago25.8MB tomcatlatest1b6b1fe7261e5daysago647MB hub.c.163.com/public/centos6.7-toolsb2ab0ed558bb3yearsago602MB [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~]#systemctlreloaddocker<!--重新启动docker服务-->

2.将图像上传到注册表私有仓库

[root@centos01~]#dockertaghub.c.163.com/public/centos:6.7-tools192.168.100.10:5000/image/centos:6.7 <!--修改镜像标签--> [root@centos01~]#dockerpush192.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~]#systemctlrestartdocker<!--重新启动docker服务--> [root@centos02~]#dockerpull192.168.100.10:5000/image/centos:6.7 <!--客户端下载私有仓库中的镜像--> [root@centos02~]#dockerimages<!--查看镜像是否下载成功--> REPOSITORYTAGIMAGEIDCREATEDSIZE 192.168.100.10:5000/image/centos6.7b2ab0ed558bb3yearsago602MB

到目前为止,注册表私有仓库已经建成,但现在有一个问题。如果也部署了这个,那么企业中的所有员工都可以访问我们的私有仓库。出于安全原因,我们将在注册表中添加一个身份验证。只有通过认证后,我们才能上传或下载私有仓库中的图像。

三。配置注册表以加载身份验证

[root@centos01~]#yum-yinstallhttpd-tools<!--安装加密工具httpd-tools--> [root@centos01~]#mkdir/opt/registry-auth<!--创建存放验证密钥目录--> [root@centos01~]#htpasswd-Bbnbobpwd@123>/opt/registry-auth/htpasswd <!--配置registry身份验证数据库--> <!--"-Bbn”参数解释:B强制密码加密;b在命令中输入密码,不提示输入密码;n不更新密钥文件--> <!--删除此服务器上的所有容器,接下来重新生成一个需要身份验证的私有仓库容器--> [root@centos01~]#dockerrun-d-p5000:5000--restart=always\ -v/opt/registry-auth/:/auth/\ -v/opt/registry:/var/lib/registry--nameregistry-auth-e"REGISTRY_AUTH=htpasswd"\ -e"REGISTRY_AUTH_HTPASSWD_REALM=RegistryRealm"\ -e"REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd"registry <!--重新运行一个支持身份验证的registry私有镜像仓库容器--> [root@centos01~]#dockertagtomcat:latest192.168.100.10:5000/image/tomcat:1.0 <!--镜像修改标签--> [root@centos01~]#dockerpush192.168.100.10:5000/image/tomcat:1.0 <!--测试不通过身份验证是否可以往私有仓库上传镜像--> nobasicauthcredentials <!--提示没有身份验证,上传不了--> [root@centos01~]#dockerlogin192.168.100.10:5000 <!--登录私有镜像仓库,通过身份验证即可上传--> Username:bob<!--输入bob--> Password:<!--输入密码--> ………………<!--此处省略部分内容--> LoginSucceeded<!--已通过身份验证,此时可以上传镜像到私有仓库--> [root@centos01~]#dockerpush192.168.100.10:5000/image/tomcat:1.0<!--再次上传镜像到私有仓库--> Thepushreferstorepository[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:55b41e0290d32d6888aee2e9a15f03cc88d2f49d5ad68892c54b9527d0ed181csize:2421 [root@centos02~]#dockerpull192.168.100.10:5000/image/tomcat:1.0 <!--docker客户端不通过身份验证直接下载私有仓库中的镜像直接被拒绝--> Errorresponsefromdaemon:Gethttp://192.168.100.10:5000/v2/image/tomcat/manifests/1.0:nobasicauthcredentials [root@centos02~]#dockerlogin192.168.100.10:5000 <!--登录私有仓库,通过身份验证--> Username:bob<!--输入bob--> Password:<!--输入密码--> LoginSucceeded<!--通过身份验证--> [root@centos02~]#dockerpull192.168.100.10:5000/image/tomcat:1.0<!--下载私有仓库中的镜像--> 1.0:Pullingfromimage/tomcat 376057ac6fa1:Pullcomplete 5a63a0a859d8:Pullcomplete 496548a8c952:Pullcomplete 2adae3950d4d:Pullcomplete 0a297eafb9ac:Pullcomplete 09a4142c5c9d:Pullcomplete 9e78d9befa39:Pullcomplete 18f492f90b9c:Pullcomplete 7834493ec6cd:Pullcomplete 216b2be21722:Pullcomplete Digest:sha256:55b41e0290d32d6888aee2e9a15f03cc88d2f49d5ad68892c54b9527d0ed181c Status:Downloadednewerimagefor192.168.100.10:5000/image/tomcat:1.0 192.168.100.10:5000/image/tomcat:1.0 [root@centos02~]#dockerimages<!--查看docker客户端镜像--> REPOSITORYTAGIMAGEIDCREATEDSIZE 192.168.100.10:5000/image/tomcat1.01b6b1fe7261e5daysago647MB 192.168.100.10:5000/image/centos6.7b2ab0ed558bb3yearsago602MB

关于Docker私有仓库注册表部署实现的这篇文章到此为止。关于Docker私人仓库注册表的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/774477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存