Docker学习(5)——创建镜像的私有仓库,设置加密认证,并且为私有仓库添加web界面

本文介绍了如何创建Docker私有仓库,包括上传镜像、设置证书加密、配置用户权限以及添加WebUI界面。通过搭建私有仓库,可以实现本地镜像的管理和分发,同时确保安全性和可控性。
摘要由CSDN通过智能技术生成

1.什么是Docker 仓库?

仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。
实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载
国内的公开仓库包括 Docker Pool等,可以提供大陆用户更稳定快速的访问
当然,用户也可以在本地网络内创建一个私有仓库
当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库
这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了

2. 私有仓库registry的优势

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

1)节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;
2)提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。

目前Docker Registry已经升级到了v2,最新版的Docker已不再支持v1。
Registry v2使用Go语言编写,在性能和安全性上做了很多优化,重新设计了镜像的存储格式。
如果需要安装registry v2,只需下载registry:2.2即可。
Docker官方提供的工具docker-registry可以用于构建私有的镜像仓库。

3.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客户端来维护推送和拉取,以及客户端的授权。

4.创建私有仓库以及上传本地镜像到私有仓库当中

Docker 官方已经把仓库封装为镜像,直接通过启动容器就可以完成部署仓库,导入registry镜像

(1)从真机给server1发送一个私有仓库的镜像
在这里插入图片描述
(2)导入镜像,并且查看
在这里插入图片描述
(3)基于镜像运行registry容器
在这里插入图片描述
(4)查看运行情况
在这里插入图片描述
(5)将本地镜像上传至私有仓库
本地镜像在命名时需要加上仓库的ip和端口
在这里插入图片描述
(6)尝试拉取刚刚上传的镜像
拉取前先把本地创建的镜像删掉
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值