Registry & Portus搭建详解

Registry私有仓库可视化 Docker Registry 是一个用于存储和分发 Docker 镜像的服务,它支持构建私有仓库来管理组织内部的应用程序和镜像。然而,默认的 Docker Registry 并没有提供图形界面,这使得管理镜像变得不太直观。为了方便管理和查看私有仓库中的镜像,可以使用一些可视化工具来增强 Registry 的功能。 阅读详情

【编者的话】本文根据云舒网络博客整理发布。文章详细介绍了Docker Registry以及带UI管理的仓库管理软件 Portus搭建过程。

前言:

首先,Docker Hub是一个很好的用于管理公共镜像的地方,我们可以在上面找到想要的镜像(Docker Hub的下载量已经达到数亿次);而且我们也可以把自己的镜像推送上去。但是,有的时候,使用场景需要我们有一个私有的镜像仓库用于管理自己的镜像,这个时候我们就通过Registry来实现此目的。本文详细介绍了本地镜像仓库Docker Registry & Portus的搭建过程(Portus是一个带UI管理的仓库管理软件),对于文中细节有兴趣或有疑问的朋友欢迎加群讨论。

Registry搭建篇

Docker & Registry环境准备

在谈到Registry的部署之前,我们首先要考虑设计一个什么样Registry的仓库环境,是部署测试环境,还是生产环境。如果是用于生产环境发布Registry,必须考虑如下因素:
a. 应在何处存储镜像?
b. 用户的权限是否受控?
c. 当发生问题,如何解决?日志是否可以查看?
d. 如何快速提取镜像?(注:这是至关重要的,如果依赖镜像进行构建测试环境、生产环境或自动化系统,这是取决仓库是否有生命力的最重要指标。)

本实例把存储镜像的路径放置到宿主机的文件路径下。例如:/opt/myregistry目录中。这样即使宿主机中Docker Registry 出现问题,我们再重创建一个,把此路径添加到新Registry Server中,那么之前上传的镜像文件仍然存在,这就更方便大家使用。下面是安装之前进行的一些准备工作:

1.Docker安装

首先,选择一个合适的PC机做宿主机,其配置参数如下:
CPU: Intel E8400 Duo CPU 3.0GHz RAM: 2G disk:300G
CPU查看命令: more /proc/cpuinfo |grep "model name"
Mem查看命令: grep MemTotal /proc/meminfo
 

1.png



2.Registry安装 

由于Docker和Registry更新比较快,所以我们在此宿主机中进行安装的时候,选择Registry2.1版本进行安装。

yum -y install docker-registry
 

2.png


 

3.png



至此,Docker和registry的安装已经完成,下面开始进行配置和测试。
 

5.png



注:安装完成后需要对Docker和Registry进行enable and start。

Registry原理

Docker模型的核心部分是有效的利用分层镜像机制,镜像可以通过分层来进行继承,基于基础镜像,可以制作各种具体的应用镜像。不同的Docker容器可以共享一些基础的文件系统层,同时再加上自己独有的改动层,大大提高了存储的效率。由于最终镜像最终是以tar.gz的方式静态存储在服务器端,这种存储适用于对象存储而不是块存储。

一次docker pull 发生的交互
▼
 

6.png

 

  1. Client向Index请求,知道从哪里下载CentOS
  2. Index回复
  3. CentOS在RegistryA
  4. CentOS的Checksum,所有层的Token
  5. Client向Registry A请求, CentOS的所有层。Registry A负责存储CentOS,以及它所依赖的层、
  6. Regsitry A向Index发起请求,验证用户Token的合法性
  7. Index返回这次请求是否合法
  8. Client从Registry下载所有的层
  9. Registry从后端存储中获取实际的文件数据,返给Client


Registry配置

1.启动Registry容器

sudo docker run –d –p 80:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry:2
 

8.jpg



Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。运行docker ps看一下容器情况:
 

7.png



说明我们已经启动了Registry服务,打开浏览器输入http://127.0.0.1:80/v2,出现下面情况说明Registry运行正常。
 

9.0_.png



2.客户机访问Registry

对于需要访问Registry仓库的客户机来说,首先需要修改/etc/sysconfig/docker的配置文件:添加 --insecure-registry 192.168.0.70:80
 

9.1_.jpg



3.客户端向Registry存放镜像

首先,需要docker tag给需要上传的镜像文件打标。然后再从本地上传镜像到仓库。
 

9.1_.jpg



4.客户端向仓库Pull镜像

在另外一台主机上使用pull从192.168.0.70的仓库中把镜像给Pull下来
 

9.3_.png


 

9.4_.jpg



通过以上操作就可以看到我们已经Pull的镜像,然后可以运行此镜像,开始你的应用之旅。到此应该说Registry基本搭建完成,但是仍然不适合实际的使用。因为不方便管理和查看到上传的镜像和权限设置。接下来我们介绍一个带UI管理的仓库管理软件—【Portus】

Portus搭建篇

注:请勿将本篇作为上篇Registry安装内容延续,以下内容为全新环境下的Portus搭建。

Portus安装

Portus(by SUSE)是用于 Docker Registry API(v2)的开源前端和授权工具,最低要求注册表版本是 2.1。它可以作为授权服务器和用户界面,用于新一代的 Docker Registry。具有以下优点:

1.)安全:Portus 实现了最新的Docker Registry中定义的新的授权方案。它允许对你所有的镜像进行细颗粒度控制,你可以决定哪个用户和团队可 push/pull 镜像。

2.)轻松管理用户: 在 Portus 映射你的公司,可以定义任意数量的 Team,并从 Team 添加和移除用户。Team 有三种类型的用户:Viewers ,只能 pull 镜像;Contributors,可以 push/pull 镜像;Owners,类似 contributors,但可以从 team 添加或移除用户。 

3.)搜索: Portus 提供你的私人注册表的内容的预览,同时有一个快速搜索镜像的功能。 

4.)审计: 用户的所有相关事件都会被Portus自动记录,并可被管理员进行用户分析。

1.安装Docker-Compose

首先,yum添加源 

[ root@bogon]# yum -y install epel-release

安装python-pip 

[root@ bogon]# yum -y install python-pip

安装docker-compose 

pip install -U docker-compose
 

10.jpg



到这里docker-compse就完成了。

2.从Git到Portus的代码搭建

正常安装方法: 需要到Git Clone https://github.com/SUSE/Portus.git上获取Portus的源码。下载包Portus_git.tar.gz,解压此源码包,并修改Gemfile.lnk 的第一行:“https://rubygems.org”修改为“http://rubygems.org”。运行compose-setup.sh -e server IP。进行构建安装。(此处省略掉)
 

11.png



由于Portus在安装过程中,需要下载几个依赖的镜像包,例如: Portus安装依赖MariaDB,portus_web.tar、rails4.2.2tar,Registry2.1.1.tar安装过程中下载比较慢。我们先下载了再进行安装过程。
 

12.png



由于我先把这几个已经下载完成,所以首先拷贝到宿主机的目录中了,需要直接解压。
 

13.jpg



3. 安装Portus程序

安装之前需要把拷贝到宿主机中的几个依赖镜像给load到Images中。
 

14.jpg



关于Registry的存储路径修改,请在安装前先到compose中修改docker-compose.yml.template文件。这里面包含web端口和挂载volumes等参数。然后,再执行安装脚本 ./compose-setup.sh -e 192.168.0.70。(由于本实例重新安装了Registry,所以,此处宿主机和容器的端口都是5000。)
 

15.png



然后到Portus源代码文件中执行./compose-setup.sh。
 

16.jpg



到此,Portus的安装已经完成.。

4. 修改Docker配置文件

此时,我们还需要修改vi /lib/systemd/system/docker.service 把--insecure-registry 192.168.0.70:5000这句加到ExecStart=/usr/bin/docker这个配置项后。
 

17.png



重启Docker

systemctl daemon-reload systemctl restart docker

重启portus容器
docker start portus_db_1 portus_web_1 portus_crono_1 portus_registry_1

可以在浏览器中打开登录窗口。
 

18.png



在客户机中需要修改 /etc/sysconfig/docker下的文件。
 

17.png



Portus配置与验证 

1.登录配置程序

Portus的登录界面需要创建用户名和密码。然后进行Registry的设置。
 

20.png


 

21.png


 

22.png



创建test01和test02帐户,并Enabled帐户,然后进行登录测试。

2.上传镜像测试
 

23.jpg


 

24.png


 

25.png



3.下载镜像测试
 

26.jpg



总结

Docker Registry的创建私有仓库的方法有很多种。像京东的Docker镜像存储系统--Speedy,Registry+Nginx &SSL等后续将进一步探究, 实现开发、测试以及生产的一体化流程,敬请期待!

本文电子书下载:

网页下载:
http://www.cloudsoar.com/down/ddoc/v1.1/

百度云盘下载:
[http://pan.baidu.com/s/1jHfP9Dc](http:// http://pan.baidu.com/s/1jHfP9Dc)

博客期刊:
http://www.cloudsoar.com/about ... v1.1/

Docker 搭建本地私有仓库 文章目录一、搭建本地私有仓库1、首先下载registry 镜像2、在daemon.json文件中添加私有镜像仓库地址3、运行 registry 容器4、为镜像打标签5、上传到私有仓库6、列出私有仓库的所有镜像7、列出私有仓库的centos镜像有哪些tag8、先删除原有的centos的镜像,再测试私有仓库下载 一、搭建本地私有仓库 有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似。 使用私有仓库有许多优点: ① 阅读详情

相关推荐

离线环境下docker的使用(含搭建registry)

Docker环境的安装 准备好docker-18.09.1.tgz包(可在官方网站下载),解压该安装包: tar -zxvf docker-18.09.1.tgz 将解压出来的docker文件移动到/usr/bin目录下 sudo cp docker/* /usr/bin 开启docker守护进程 sudo dockerd & 查看是否可使用 sudo doc...

游不快的老孙 3377

【Docker实战】Registry & Portus搭建详解

【编者的话】本文根据云舒网络博客整理发布。文章详细介绍了Docker Registry以及带UI管理的仓库管理软件 Portus搭建过程。前言:首先,Docker Hub是一个很好的用于管理公共镜像的地方,我们可以在上面找到想要的镜像(Docker Hub的下载量已经达到数亿次);而且我们也可以把自己的镜像推送上去。但是,有的时候,使用场景需要我们有一个私有的镜像仓库用于管理自己的镜像,这个时...

xiaomin1991222的专栏 424

从零到一:Docker Registry-v2私有化部署的五大实战陷阱与避坑指南

本文详细解析Docker Registry-v2私有化部署中的五大实战陷阱,包括HTTP协议兼容性、存储配置、认证机制、高可用架构和监控盲区,并提供专业避坑指南。特别针对Registry-v2的强制HTTPS策略、分层存储策略和企业级认证方案进行深入探讨,帮助开发者高效搭建安全的私有镜像仓库。

weixin_29230901的博客 439

docker私有仓库搭建 使用Portus管理docker registry 私有仓库

一:Portus介绍     Portus(by SUSE)是用于Docker Registry API(V2)的开源和授权工具,最低要求registry版本是2.1。它可以作为授权服务器和用户界面,用于新一代的 Docker Registry。具有以下优点: 1.安全:Portus 实现了最新的Docker Registry中定义的新的授权方案。它允许对你所有的镜像进行细颗粒度控

l18710006370的博客 3754

《YOLOv8实例分割实战:训练自己的数据集 》(视频课程)

本课程将手把手地教大家使用labelme标注和使用YOLOv8训练自己的数据集,完成一个多目标实例分割实战项目。

bai666ai的博客 790

智能体在车联网中的应用:第9天 核心工具链与仿真世界:SUMO交通仿真入门——从安装到构建你的第一个虚拟十字路口

摘要 SUMO是一款开源微观交通仿真工具,为车联网和自动驾驶算法开发提供高效安全的测试环境。文章详细介绍了SUMO的核心概念、安装方法及实战应用。在Ubuntu或Windows系统安装SUMO后,可通过netedit工具构建十字路口路网,包括创建节点、连接边、设置交通信号灯等步骤。随后通过编写.rou.xml文件定义车辆类型、路线和车流,实现动态交通场景模拟。SUMO支持与外部程序交互,能复现真实场景、进行极端测试和算法验证,是车联网研究的理想数字沙盘。

IT深耕十余载,大道之简 1455

CRACO Babel 配置指南:presets、plugins 与 loaderOptions 的完整覆写实践

本篇技术指南聚焦 Create React App Configuration Override(CRACO)提供的 `babel` 配置区块,讲解如何在不弹出(eject)Create React App 的前提下,通过 `craco.config.js` 覆写 Babel 的 presets、plugins 与 babel-loader 选项。读者读完将掌握 `babel.presets`、`

gitblog_00571的博客 1100

怎么选?一文读懂12种SPC控制图,从基础到进阶,再到Python代码实现

本文系统介绍了12种常用SPC控制图的应用场景和特点,包括计量型(Xbar-R图、Xbar-s图、I-MR图等)、计数型(P图、NP图、U图等)及进阶控制图(EWMA图、CUSUM图、多元控制图)。文章强调控制图是SPC的核心工具,能有效区分过程变异类型,实现"预防优于检测"的质量管理目标。通过数据示例和Python代码展示了各类控制图的实现方法,为质量管理人员提供了实用参考。

m0_56592100的博客 4160

Docker仓库搭建(Registry + Portus)

1、安装CentOS 7.2(步骤略)2、更新系统yumupdate-y3、安装docker-composeyum-yinstallepel-release#pip安装包在epel源中 yum-yinstallpython-pip pipinstall-Udocker-compose4、安装git客户端yuminstall-ygit5、复制...

weixin_34123613的博客 272

三级等保网络拓扑图实战:从零搭建符合标准的医院安全架构

本文详细阐述了如何从零开始设计并搭建符合三级等保标准的医院网络安全架构。文章基于“一个中心,三重防护”的核心框架,深入解析了医院网络分区设计、安全域划分、关键安全设备选型与配置等实战要点,并提供了绘制专业网络拓扑图的技巧与等保测评准备指南,旨在帮助医院IT人员系统化地构建既合规又实用的纵深防御体系。

weixin_29326909的博客 505

大华 DSS 数字监控系统 itcBulletin SQL 注入漏洞复现

大华 DSs 数字监控系统是大华开发的一款安防视频监控系统,拥有实时监视、云台操作、录像回放、报警处理、设备管理等功能。大华 DSS存在SQL注入漏洞,攻击者 pota/services/itcBuletin 路由发送特殊构造的数据包,利用报错注入获取数据库敏感信息。攻击者除了可以利用 SQL注入漏词获取数据库中的信息例如,管理员后台密码、站点的用户人人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限poc验证是否存在漏洞如果你想查询用户名和密码。

holyxp的博客 4005

Docker registry & Portus

链接:http://pan.baidu.com/s/1pLL4YRD 密码:ewph 转载于:https://my.oschina.net/liuhuan0927/blog/662382...

chucangguan9546的博客 223

MATLAB离线附加功能包下载与安装教程

本文介绍如何下载与安装MATLAB离线附加功能包,便于大家更加高效的使用MATLAB。

加斯顿工程师的博客 1万+

city-roads:一条命令看完整城道路网络,免费开源

想看一座城市的全部街道?多数人得先写爬虫、再调画图库。开源项目 city-roads 省掉这些步骤:它把 OpenStreetMap 的数据拉进浏览器,用 WebGL 一次画完整城街道,MIT 协议完全免费。 ## 🧩 它到底是什么 说白了,city-roads 就是一台"整城路网渲染器"。你输入城市名,它自动划定行政边界,把里面的每一条街道渲染到屏幕上。项目预存了约 3000 个大城市的边

gitblog_00348的博客 705

数仓解惑:数据仓库常见建模方法与大数据领域建模实例综述

为什么需要数据建模? 为什么要进行数据仓库建模? 随着DT时代互联网、智能设备等信息技术的发展,数据开始井喷式的增长,如何讲这些数据进行有序、有结构地分类组织存储是我们面临的一个挑战。 如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置,而不是乱糟糟的 大数据的数仓建模是通过建模的方法更好的组织、存储数据,以便在 性能、成本、效率和数据质量之间找到最佳平衡点。一般主要从下面四点考虑 ...

云祁QI 5850

ardupilot开发 --- mavlink签名加密 篇

ardupilot开发 --- mavlink签名加密

记录老板的每次pua,分享领导每天的毒鸡汤... 1241

【Linux operation 18】 - SUSE 12 SP5在线安装Docker

1、指导文档地址: https://documentation.suse.com/sles/12-SP5/single-html/SLES-dockerquick/index.html 2、在线安装前提 General Preparation 在安装任何 Docker 相关的包之前,需要启用容器模块: Prepare the host as described below. Before installing any Docker-related packages, you need to enable

qq_22938603的博客 2516

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

3分钟部署完成Docker Registry及可视化管理工具Docker-UI

首页展示出了目前容器的运行列表,容器、镜像创建时间及数量。各容器间网络关联情况看起来比较炫,但感觉没啥实用性。镜像镜像列表,可删除、上传新的镜像。

关于代码的那些事 8280

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Docker Registry搭建与使用

配置docker.service 文件 vim /usr/lib/systemd/system/docker.service。编辑 daemon.json文件, 这个文件可能不存在,不存在就创建。

cuipy的博客 831

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

docker学习------registry可视化的实现

1.Harbor的发现   之前一直在使用registry,但docker pull下来的基础镜像并没用携带UI界面,所以查找了一波开源工具,发现了Harbor这一工具,下面对工具进行一个学习。 2.部署实现,新版本docker的安装   curl -sSL https://get.docker.com/ | sh //直接拉取docker的镜像 3.拉取工具   yu...

weixin_30629653的博客 851

搭建portus管理docker registry私服

文章详细介绍了Docker Registry以及带UI管理的仓库管理软件 Portus搭建过程。 前言: 首先,Docker Hub是一个很好的用于管理公共镜像的地方,我们可以在上面找到想要的镜像(Docker Hub的下载量已经达到数亿次);而且我们也可以把自己的镜像推送上去。但是,有的时候,使用场景需要我们有一个私有的镜像仓库用于管理自己的镜像,这个时候我们就通过Registry来实现此目

u013161561的博客 520

Docker安装及搭建Portainer可视化UI/Portainer管理Docker

一、安装docker 1、docker可以通过官网教程进行安装,地址是:https://docs.docker.com/install/linux/docker-ce/centos/#set-up-the-repository 2、官网安装方式有点繁琐,这里提供一个更加简单的安装方式,直接下载docker安装包,然后直接用yum命令来安装,docker安装包下载地址: https://dow...

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 3891

搭建docker registry离线镜像服务器

如果要使用docker pull push操作,都需要加这段配置。如果要使用isula pull操作,需要添加以下配置。运行registry容器。

MengMengDeXiaoJi的博客 364

1分钟学会使用docker-compose部署 registry 以及可视化镜像

镜像详情:可删除的噢。

trouble is a friend 1759
上一篇: 阿里开源高效简单易用的分布式事务解决方案——fescar
下一篇: Kubernetes使用集群联邦实现多集群管理
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值