docker(五)公/私有仓库的搭建,设置加密认证

什么是仓库

Docker仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。
Docker运行中使用的默认仓库是Docker Hub公共仓库。

在这里插入图片描述
docker hub是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库。
在这里插入图片描述

docker hub公共仓库

首先在https://hub. docker. com/网站注册一个账号
(1)在docker hub上新建一个公共仓库,创建之后可以看到如下公共仓库

在这里插入图片描述

(2)登陆
在这里插入图片描述
查看信息
在这里插入图片描述
(3)将本地镜像上传至私有仓库

在这里插入图片描述
(4)docker hub上查看
在这里插入图片描述
(5)从私有仓库拉取并运行查看信息
拉取前先把本地创建的镜像删掉
在这里插入图片描述
(6)测试
在这里插入图片描述

Registry工作原理

在这里插入图片描述
index服务主要提供镜像索引以及用户认证的功能。当下载一个镜像的时候,首先会去index服务上做认证,然后查找镜像所在的registry的地址并放回给docker客户端,docker客户端再从registry下载镜像,在下载过程中registry会去index校验客户端token的合法性,不同镜像可以保存在不同的registry服务上,其索引信息都放在index服务上。

Docker Registry有三个角色,分别是index、registry和registry client
(1)index
负责并维护有关用户帐户、镜像的校验以及公共命名空间的信息。
Web UI
元数据存储
认证服务
符号化
(2)registry
是镜像和图表的仓库,它不具有本地数据库以及不提供用户认证,通过Index Auth service的Token的方式进行认证。
(3)Registry Client
Docker充当registry客户端来维护推送和拉取,以及客户端的授权。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

搭建私有仓库

在这里插入图片描述
(1)拉取registry

在这里插入图片描述
(2)运行容器
运行前删除其他所有的容器
在这里插入图片描述
(3)将本地镜像上传至私有仓库

本地镜像在命名时需要加上仓库的ip和端口

在这里插入图片描述
(4)尝试拉取刚刚上传的镜像

在这里插入图片描述
(5)安装tree,查看目录下的镜像数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这样的库任何人都可以访问,这样不安全,下来我们要增加库的安全性

给私有仓库添加证书

(1)增加一台虚拟机serve2并配置
yum文件,依赖包,bridge.conf文件
在这里插入图片描述
安装docker
在这里插入图片描述
使之生效后开启服务
在这里插入图片描述

安装bash可以用table补齐
在这里插入图片描述
(2)配置完成后在server2拉取
在这里插入图片描述

可以看到此时不行,需要https加密!!!

(3)可以明确指出不走加密,不推荐这种
在这里插入图片描述
还原
在这里插入图片描述

(4)给server1服务端生成证书,添加解析
在这里插入图片描述
在这里插入图片描述

(5)删除之前的registry仓库,也可以不用删除,起一个别的名字
在这里插入图片描述
(6)再次构建容器(私有仓库)
在这里插入图片描述
在这里插入图片描述
(7)创建证书存放目录,并复制证书
在这里插入图片描述
(8)再次把本地镜像上传到刚刚建立的私有仓库里面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(9)用另一台主机server2从server1的私有仓库上面拉取镜像
给server2上传一份证书

在这里插入图片描述
拉取
在这里插入图片描述

配置用户权限 ,给证书加密

如果想要控制registry的使用权限,使其只有在登录用户名和密码之后才能使用的话
还需要做额外的设置,registry的用户名密码文件可以通过htpasswd来生成

在这里插入图片描述
(1)在服务端server1设置用户密码并查看
在这里插入图片描述
(2)再次创建仓库

[root@server1 ~]# docker run -d \
> --restart=always \
> --name registry \
> -v "$(pwd)"/certs:/certs \
> -v "$(pwd)"/auth:/auth \
> -v /opt/registry:/var/lib/registry \
> -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
> -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt \
> -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key \
> -e "REGISTRY_AUTH=htpasswd" \
> -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
> -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
> -p 443:443 \
>  registry

在这里插入图片描述

(3)准备上传本地镜像到私有仓库当中,先换标签

在这里插入图片描述
(4)登录加密仓库,并输入用户名和密码进行认证
在这里插入图片描述
(5)server2上登陆后拉取
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值