一、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搭建私有仓库、证书认证、用户登录认证相关推荐

  1. 我的docker随笔38:用 registry 搭建私有仓库

    本文涉及一种在服务器部使用 registry 署私有镜像仓库的方法.经验证,可达到预期目标,并能应用在实际工作中. 一.引言 由于测试服务器无法使用外部网络,而又需要容器化部署应用程序.经考虑,使用 ...

  2. docker registry 2 私有仓库镜像删除方法

    最近由于项目测试部署需要,打算搭建私有的dokcer registry进行镜像管理.第一步操作registry就遇到问题,不得不说,这个玩意操作太麻烦了,接下来会再找找看有没有好用的ui管理工具.下面 ...

  3. Docker Registry本地私有仓库搭建

    相比Docker Hub而言,Docker Registry的功能就不够全面了,且需要自己手动配置.升级.维护和管理,所以说对于Docker镜像管理不太熟悉的人员推荐使用Docker Hub.如果开发 ...

  4. Docker的使用(四:Docker Registry本地私有仓库搭建知识点总结)

    任务一: Docker Registry本地私有仓库搭建 1.启动Docker Registry: 2.重命名镜像: 3.推送镜像: 4.浏览器查看验证: 5.文件查看验证: 任务二:Docker R ...

  5. docker基础:私有仓库repository搭建(1):registry

    使用docker的login命令之后,可以使用push命令将镜像推送到dockerhub上,但是dockerhub毕竟在公网上,免费的帐户只有一个private 的repository是免费的,剩下的 ...

  6. docker进阶-搭建私有企业级镜像仓库Harbor

    为什么要搭建私有镜像仓库   对于一个刚刚接触Docker的人来说,官方的Docker hub是用于管理公共镜像.既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像.我们 ...

  7. Docker 容器仓库之搭建私有仓库、hub仓库

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

  8. docker搭建私有仓库

    紧接上一篇镜像发布到官方之后,我们来搭建我们自己的私有仓库,比较,如果真的要在生产环境使用的话,这是必须的. 首先,我们来准备一下搭建私有仓库所需要的信息. #先吧私有仓库down下来,这需要一点时间 ...

  9. Docker入门之四搭建私有仓库

    前面学习了下镜像和容器,今天来学习下仓库,来搭建本地私有仓库.当然可以使用远程的共有的仓库,但在企业中有的还是放在本地,所以需要搭建私有仓库. 一.搭建仓库 可以在容器中run一个仓库镜像. dock ...

最新文章

  1. 种子文件多服务器,使用bitcomet制作torrent文件 [BitComet]
  2. rsync同步和备份文件到本地
  3. HTML5本地存储 localStorage
  4. 海尔联手软银机器人,进军服务机器人领域
  5. c语言实现二分法_C语言实现二分法求解方程在区间内的根
  6. 列表,元组,集合,字典常用方法
  7. 机器学习入门笔记(一):模型性能评价与选择
  8. 深度学习自学(十二):关键点数据集处理-300VW
  9. 超定方程组的经典Gram-Schmidt正交化解法
  10. python 英文字典-python如何制作英文字典
  11. 解决:qrc文件中删除资源文件后编译失败
  12. 直流开环调速系统 simulink仿真
  13. 人工智能数据标注案例之人脸识别案例
  14. Linux下redis基本操作
  15. 我的世界服务器显示文字,我的世界之狮子座(自编的)是我的服务器哦~只有文字...
  16. VC6.0 编译出现fatal error C1083
  17. 陶朱公商训 道出了管理的本质
  18. UTI 唯一类型标识
  19. Window 的标志
  20. AI测试中的数据收集

热门文章

  1. 深度学习卷积算法指南
  2. DSP从flash启动
  3. 六、线性方程组求解--Jacobi和Gauss-Seidel迭代求解
  4. 浏览器野史 UserAgent列传(上)
  5. android 三级级联筛选列表,写给程序员的Flutter详细教程
  6. python协程池_python3下multiprocessing、threading和gevent性能对比—-暨进程池、线程池和协程池性能对比 | 学步园...
  7. windows10系统装cad2007提示缺少NET组件
  8. 如何利用今日头条推荐规则, 打造阅读量100万+的爆款文章?
  9. (数据科学学习手札32)Python中re模块的详细介绍
  10. 液压缸移动负载分析(液压系统基础)