【Docker】Registry搭建私有仓库、证书认证、用户登录认证
一、Docker Registry工作原理
02_Docker Registry角色
Docker Registry有三个角色,分别是index、registry和registry client。
index
- 负责并维护有关用户帐户、镜像的校验以及公共命名空间的信息。
- Web UI
- 元数据存储
- 认证服务
- 符号化
registry
- 是镜像和图表的仓库,它不具有本地数据库以及不提供用户认证,通过Index Auth service的Token的方式进行认证。
Registry Client
- Docker充当registry客户端来维护推送和拉取,以及客户端的授权。
01_Docker Registry工作原理
工作原理
- index服务主要提供镜像索引以及用户认证的功能。当下载一个镜像的时候,首先会去index服务上做认证,然后查找镜像所在的registry的地址并放回给docker客户端,docker客户端再从registry下载镜像,在下载过程中registry会去index校验客户端token的合法性,不同镜像可以保存在不同的registry服务上,其索引信息都放在index服务上。
- 用户要获取并下载镜像
- 用户要推送镜像到registry中
用户要从index或registry中删除镜像
二、registry搭建私有仓库
01_搭建registry仓库
- 拉取官方registry镜像
docker pull registry
- 搭建仓库
docker run -d --name registry \ #-d:打入后台
> -p 5000:5000 \ #-p:端口映射
> -v /opt/registry:/var/lib/registry \ #-v:挂载
> registry
02_上传镜像并拉取
server1端上传镜像
#创建
docker tag webserver:v1 localhost:5000/webserver:latest
#上传镜像到本地仓库
docker push localhost:5000/webserver
- 搜索上传本地仓库的镜像
curl localhost:5000/v2/_catalog
server2端拉取镜像 vim /etc/docker/daemon.json
:首先从设置好的私有仓库读取
{"insecure-registries" : ["192.168.17.1:5000"]
}
systemctl reload docker
docker pull 192.168.17.1:5000/webserver
:拉取
当不想读取私有仓库时删除此文件,重启!
rm -fr /etc/docker/daemon.json
systemctl reload docker
三、registry证书认证
01_生成认证证书
- 制作证书
mkdir -p certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -x509 -days 365 -out certs/westos.org.crt
- 设置解析
vim /etc/hosts
172.25.2.1 server1 reg.westos.org
- 复制证书
#创建的目录名称是制作证书时填写的server name
mkdir -p /etc/docker/certs.d/reg.westos.org/
cp certs/westos.org.crt /etc/docker/certs.d/reg.westos.org/ca.crt
- 搭建仓库
docker run -d --name registry -p 443:443 \ #映射端口
> -v /opt/registry/:/var/lib/registry \ #挂载的仓库目录
> -v "$(pwd)"/certs:/certs \ #挂载证书
> -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 \ #私钥位置
> registry
上传
docker tag yakexi007/game2048:latest reg.westos.org/game2048:latest
docker push reg.westos.org/game2048:latest
搜索上传本地仓库的镜像
curl -k https://172.25.2.1/v2/_catalog
02_远程测试
server2:172.25.2.2
- 删除私有仓库读取方法
rm -fr /etc/docker/daemon.json
systemctl reload docker
- 解析
vim /etc/host
172.25.2.1 server1 reg.westos.org
- 拷贝证书
mkdir -p /etc/docker/certs.d/reg.westos.org/
scp server1:/etc/docker/certs.d/reg.westos.org/ca.crt /etc/docker/certs.d/reg.westos.org/
- 拉取镜像
docker pull reg.westos.org/game2048
四、registry用户登录认证
01_htpasswd创建登陆仓库
安装
yum install -y htpasswd httpd-tools
创建存储目录
mkdir auth
添加用户
htpasswd -B -c auth/htpasswd sl
htpasswd -B auth/htpasswd admin
:再次创建用户不加-c搭建仓库
docker run -d --name registry -p 443:443 \
> -v /opt/registry/:/var/lib/registry \
> -v "$(pwd)"/certs:/certs \
> -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 \
> -v "$(pwd)"/auth:/auth \
> -e "REGISTRY_AUTH=htpasswd" \
> -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
> -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
> registry
- 上传镜像
docker login reg.westos.org
登录
docker tag busybox:latest reg.westos.org/busybox:latest
docker push reg.westos.org/busybox
上传
02_远端测试
server2:172.25.2.2
添加解析
vim /etc/host
172.25.2.1 server1 reg.westos.org
登录
docker login reg.westos.org
docker pull reg.westos.org/busybox
【Docker】Registry搭建私有仓库、证书认证、用户登录认证相关推荐
- 我的docker随笔38:用 registry 搭建私有仓库
本文涉及一种在服务器部使用 registry 署私有镜像仓库的方法.经验证,可达到预期目标,并能应用在实际工作中. 一.引言 由于测试服务器无法使用外部网络,而又需要容器化部署应用程序.经考虑,使用 ...
- docker registry 2 私有仓库镜像删除方法
最近由于项目测试部署需要,打算搭建私有的dokcer registry进行镜像管理.第一步操作registry就遇到问题,不得不说,这个玩意操作太麻烦了,接下来会再找找看有没有好用的ui管理工具.下面 ...
- Docker Registry本地私有仓库搭建
相比Docker Hub而言,Docker Registry的功能就不够全面了,且需要自己手动配置.升级.维护和管理,所以说对于Docker镜像管理不太熟悉的人员推荐使用Docker Hub.如果开发 ...
- Docker的使用(四:Docker Registry本地私有仓库搭建知识点总结)
任务一: Docker Registry本地私有仓库搭建 1.启动Docker Registry: 2.重命名镜像: 3.推送镜像: 4.浏览器查看验证: 5.文件查看验证: 任务二:Docker R ...
- docker基础:私有仓库repository搭建(1):registry
使用docker的login命令之后,可以使用push命令将镜像推送到dockerhub上,但是dockerhub毕竟在公网上,免费的帐户只有一个private 的repository是免费的,剩下的 ...
- docker进阶-搭建私有企业级镜像仓库Harbor
为什么要搭建私有镜像仓库 对于一个刚刚接触Docker的人来说,官方的Docker hub是用于管理公共镜像.既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像.我们 ...
- Docker 容器仓库之搭建私有仓库、hub仓库
一.什么是仓库 Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像. Docker运行中使用的默认仓库 ...
- docker搭建私有仓库
紧接上一篇镜像发布到官方之后,我们来搭建我们自己的私有仓库,比较,如果真的要在生产环境使用的话,这是必须的. 首先,我们来准备一下搭建私有仓库所需要的信息. #先吧私有仓库down下来,这需要一点时间 ...
- Docker入门之四搭建私有仓库
前面学习了下镜像和容器,今天来学习下仓库,来搭建本地私有仓库.当然可以使用远程的共有的仓库,但在企业中有的还是放在本地,所以需要搭建私有仓库. 一.搭建仓库 可以在容器中run一个仓库镜像. dock ...
最新文章
- 种子文件多服务器,使用bitcomet制作torrent文件 [BitComet]
- rsync同步和备份文件到本地
- HTML5本地存储 localStorage
- 海尔联手软银机器人,进军服务机器人领域
- c语言实现二分法_C语言实现二分法求解方程在区间内的根
- 列表,元组,集合,字典常用方法
- 机器学习入门笔记(一):模型性能评价与选择
- 深度学习自学(十二):关键点数据集处理-300VW
- 超定方程组的经典Gram-Schmidt正交化解法
- python 英文字典-python如何制作英文字典
- 解决:qrc文件中删除资源文件后编译失败
- 直流开环调速系统 simulink仿真
- 人工智能数据标注案例之人脸识别案例
- Linux下redis基本操作
- 我的世界服务器显示文字,我的世界之狮子座(自编的)是我的服务器哦~只有文字...
- VC6.0 编译出现fatal error C1083
- 陶朱公商训 道出了管理的本质
- UTI 唯一类型标识
- Window 的标志
- AI测试中的数据收集
热门文章
- 深度学习卷积算法指南
- DSP从flash启动
- 六、线性方程组求解--Jacobi和Gauss-Seidel迭代求解
- 浏览器野史 UserAgent列传(上)
- android 三级级联筛选列表,写给程序员的Flutter详细教程
- python协程池_python3下multiprocessing、threading和gevent性能对比—-暨进程池、线程池和协程池性能对比 | 学步园...
- windows10系统装cad2007提示缺少NET组件
- 如何利用今日头条推荐规则, 打造阅读量100万+的爆款文章?
- (数据科学学习手札32)Python中re模块的详细介绍
- 液压缸移动负载分析(液压系统基础)