应用容器引擎之 docker 学习(六) 公/私有仓库的搭建+为仓库创建加密+配置用户权限

什么是Docker 仓库

仓库是集中存放镜像文件的场所。

有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载
国内的公开仓库包括 Docker Pool等,可以提供大陆用户更稳定快速的访问

当然,用户也可以在本地网络内创建一个私有仓库
当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

在这里插入图片描述

私有仓库registry的优势

有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似。

使用私有仓库有许多优点:

1)节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,
只需要从私有仓库中下载即可;
2)提供镜像资源利用,针对于公司内部使用的镜像,
推送到本地的私有仓库中,以供公司内部相关人员使用。
目前Docker Registry已经升级到了v2,最新版的Docker已不再支持v1。Registry v2使用Go语言编写,在性能和安全性上做了很多优化,重新设计了镜像的存储格式。如果需要安装registry v2,只需下载registry:2.2即可。
Docker官方提供的工具docker-registry可以用于构建私有的镜像仓库

在Docker Hub上上传镜像

在这里插入图片描述
1.注册账号
在这里插入图片描述创建仓库
在这里插入图片描述在这里插入图片描述仓库要是共有的
在这里插入图片描述点击create
在这里插入图片描述在这里插入图片描述1.在这里插入图片描述在这里插入图片描述2.在这里插入图片描述3.在这里插入图片描述在这里插入图片描述4.在这里插入图片描述5.在这里插入图片描述在这里插入图片描述6.在这里插入图片描述7.在这里插入图片描述在这里插入图片描述

Registry的工作原理

在这里插入图片描述
Docker Registry有三个角色,分别是index、registry和registry client

(1)index
负责并维护有关用户帐户、镜像的校验以及公共命名空间的信息。
Web UI
元数据存储
认证服务
符号化
(2)registry

是镜像和图表的仓库,它不具有本地数据库以及不提供用户认证,通过Index Auth service的Token的方式进行认证。

(3)Registry Client

Docker充当registry客户端来维护推送和拉取,以及客户端的授权。

1.在这里插入图片描述2.在这里插入图片描述3.
在这里插入图片描述

如何构建私有仓库

在这里插入图片描述
在这里插入图片描述Docker 官方已经把仓库封装为镜像,直接通过启动容器就可以完成部署仓库,导入registry镜像
1.在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述2.基于镜像运行registry容器

在这里插入图片描述在这里插入图片描述在这里插入图片描述3.将本地镜像上传至私有仓库,本地镜像在命名时需要加上仓库的ip和端口

在这里插入图片描述在这里插入图片描述4.在这里插入图片描述先删除本地已经有的镜像
在这里插入图片描述可以看到拉取成功
在这里插入图片描述在这里插入图片描述5.在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述6.安装tree,查看/opt/registry/目录下的镜像数据
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

让其他主机以选择非加密的方式访问本地私有镜像

1.封装一台新的主机 ser2 172.25.2.3
在这里插入图片描述在这里插入图片描述2.在ser2上搭建docker
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
3.查看本地的5000端口是否正常工作
在这里插入图片描述4.ser2尝试从ser1拉取镜像
在这里插入图片描述5.在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述6.拉取成功
在这里插入图片描述在这里插入图片描述

为本地私有仓库创建加密,创建签名证书

1.给私有仓库生成证书和key
在这里插入图片描述在这里插入图片描述2.在本地做解析
在这里插入图片描述3.在这里插入图片描述4.删除之前的registry1仓库,也可以不用删除,起一个别的名字
在这里插入图片描述5.再次构建容器(私有仓库)
在这里插入图片描述在这里插入图片描述6.想要在本地上传镜像时

在这里插入图片描述7.创建证书存放目录,并复制证书
在这里插入图片描述在这里插入图片描述在这里插入图片描述8.再次上传时,正确
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
9.尝试用另一台主机ser2从ser1的私有仓库上面拉取镜像
在这里插入图片描述10.把ser1上的证书传给ser2

在这里插入图片描述在这里插入图片描述11.拉取测试
在这里插入图片描述

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

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

(1)在服务端设置用户密码并查看

cd /etc/docker/
mkdir auth
 docker run --entrypoint htpasswd registry -Bbn admin westos> auth/htpasswd

在这里插入图片描述
(2)再次创建仓库

在这里插入图片描述(3)在这里插入图片描述在这里插入图片描述(4)认证失败
在这里插入图片描述在这里插入图片描述(5)路径的问题,重新运行
在这里插入图片描述在这里插入图片描述在这里插入图片描述(5)登录成功
在这里插入图片描述在这里插入图片描述(6)在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述(7)在这里插入图片描述在这里插入图片描述(8)在这里插入图片描述在这里插入图片描述
还可以为仓库添加webui界面,下载包,添加配置就好

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值