Harbor-私有镜像仓库

目录

一、Harbor 原理说明

1.软件资源介绍

2.Harbor 特性

3.Harbor 认证过程

4.Harbor 认证流程

二、私有镜像仓库实验

1.环境准备

2.安装docker

3.配置镜像加速和私有仓库地址

4.搭建harbor仓库

5.本地windows浏览器访问配置


一、Harbor 原理说明

1.软件资源介绍

  • Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor。其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。
  • 它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control), AD/LDAP集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
  • Harbor的每个组件都是以Docker容器的形式构建的,使用Docker Compose来对它进行部署。用于部署Harbor的Docker Compose模板位于  /Deployer/docker-compose.yml,由5个容器组成,这几个容器通过Docker link的形式连接在一起,在容器之间通过容器名字互相访问。对终端用户而言,只需要暴露 proxy ( 即Nginx)的服务端口。

         Proxy:由Nginx 服务器构成的反向代理。

         Registry:由Docker官方的开源 registry 镜像构成的容器实例。

         UI:即架构中的 core services, 构成此容器的代码是 Harbor 项目的主体。

         MySQL:由官方 MySQL 镜像构成的数据库容器。

         Log:运行着 rsyslogd 的容器,通过 log-driver 的形式收集其他容器的日志

2.Harbor 特性

        a、基于角色控制:用户和仓库都是基于项目进行组织的, 而用户基于项目可以拥有不同的权限。

         b、基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制

         c、支持LDAP: Harbor的用户授权可以使用已经存在LDAP用户

         d、镜像删除 & 垃圾回收: Image可以被删除并且回收Image占用的空间,绝大部分的用户操作API, 方便用户对系统进行扩展

         e、用户UI:用户可以轻松的浏览、搜索镜像仓库以及对项目进行管理

         f、轻松的部署功能: Harbor提供了online、offline安装,除此之外还提供了virtualappliance安装。

         g、Harbor 和 docker registry 关系: Harbor实质上是对 docker registry 做了封装,扩展了自己的业务模块。

3.Harbor 认证过程

         a、dockerdaemon从docker registry拉取镜像。

         b、如果dockerregistry需要进行授权时, registry将会返回401 Unauthorized响应,同时在响应中包含了docker client如何进行认证的信息。

         c、dockerclient根据registry返回的信息,向auth server发送请求获取认证token。

         d、auth server则根据自己的业务实现去验证提交的用户信息是否存符合业务要求。e、用户数据仓库返回用户的相关信息。

         f、auth server将会根据查询的用户信息,生成token令牌,以及当前用户所具有的相关权限信息.上述就是完整的授权过程.当用户完成上述过程以后便可以执行相关的pull/push操作。认证信息会每次都带在请求头中。

4.Harbor 认证流程

         a、首先,请求被代理容器监听拦截,并跳转到指定的认证服务器。

         b、 如果认证服务器配置了权限认证,则会返回401。通知dockerclient在特定的请求中需要带上一个合法的token。而认证的逻辑地址则指向架构图中的core services。

         c、 当docker client接受到错误code。client就会发送认证请求(带有用户名和密码)到coreservices进行basic auth认证。

         d、 当C的请求发送给ngnix以后, ngnix会根据配置的认证地址将带有用户名和密码的请求发送到core serivces。

         e、 coreservices获取用户名和密码以后对用户信息进行认证(自己的数据库或者介入LDAP都可以)。成功以后,返回认证成功的信息

二、私有镜像仓库实验

1.环境准备

两台虚拟机:一台服务器(192.168.159.82),一台客户端(192.168.159.83)。

  • docker地址:
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpmdocker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm
  • docker-compose地址:
curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • Harbor 地址:
https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-offline-installer-v1.2.0.tgz

2.安装docker

服务端和客户端同时执行

# 上传docker安装包并解压
# 安装上传的dockerrpm包yum -y install docker*systemctl enable docker# 重启服务器,使docker可以接管防火墙规则。reboot

3.配置镜像加速和私有仓库地址

客户端执行

mkdir /etc/dockervim /etc/docker/daemon.json{"registry-mirrors": ["https://si4p9a1f.mirror.aliyuncs.com"]"insecure-registries": ["harbor.daboluo.com"]
}systemctl daemon-reload && systemctl restart docker# 将 harbor.daboluo.com 域名指向服务端地址
vim /etc/hosts
192.168.159.82    harbor.daboluo.com

4.搭建harbor仓库

服务器执行:

# 上传 harbor-offline-installer-v1.2.0 的rpm包# 下载docker-compose
curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod a+x /usr/local/bin/docker-compose# 查看版本信息
docker-compose version# 解压harbor压缩包
tar -zxvf harbor-offline-installer-v1.2.0mv harbor /usr/local/ && cd /usr/local/harbor/vim harbor.cfg
hostname = harbor.daboluo.com
ui_url_protocol = https# 创建加密证书
mkdir -p /data/cert# 创建私钥文件,填写密码
openssl genrsa -des3 -out server.key 2048#申请证书
openssl req -new -key server.key -out server.csr#将私钥密码备份给org
cp server.key server.key.org#将私钥密码去除
openssl rsa -in server.key.org -out server.key#根据私钥文件签发证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt#查看私钥和证书的位置是否正确
cd /usr/local/harbor && cat harbor.cfs# 进行安装
./install.sh# 查看所有容器
docker ps -a# 启动所有容器
docker-compose -f /usr/local/harbor/docker-compose.yml startdocker restart docker

5.本地windows浏览器访问配置

# 配置windows的hosts文件,将域名解析到harbor服务器
C:\Windows\System32\drivers\etc\hosts
192.168.159.82    harbor.daboluo.com浏览器访问harbor.xinxianghf.com
输入用户名和密码
admin
Harbor12345

新建项目(镜像仓库名称)

# 创建普通用户推送、下载镜像客户端执行:# 登录仓库
docker login harbor.daboluo.com -udaboluo# 修改镜像的标签名
docker tag SOURCE_IMAGE[:TAG] harbor.daboluo.com/nginx/IMAGE[:TAG]# 推送镜像
docker push harbor.daboluo.com/nginx/IMAGE[:TAG]# 下载镜像
docker pull harbor.daboluo.com/nginx/nginx:latest

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试算法-62-盛最多水的容器

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。…

CycleGAN训练及测试过程细节记录

CycleGAN训练及测试过程细节记录 文章目录 关于训练关于测试 关于训练 1、训练前将数据配置好,并在Pycharm中写好配置信息 2、关于训练过程的参数配置在 options/train_options.py options/base_options.py batch_size:批大小 crop_size:…

Android分区存储到底该怎么做

文章目录 一、Android存储结构二、什么是分区存储?三、私有目录和公有目录三、存储权限和分区存储有什么关系?四、我们应该该怎么做适配?4.1、利用File进行操作4.2、使用MediaStore操作数据库 一、Android存储结构 Android存储分为内部存储和…

支付宝手机网站支付,微信扫描二维码支付

支付宝手机网站支付 支付宝文档 响应示例 <form name"punchout_form" method"post" action"https://openapi.alipay.com/gateway.do?charsetUTF-8&methodalipay.trade.wap.pay&formatjson&signERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE…

MySQL 数据库设计范式

第一范式&#xff08;1NF&#xff09; 每一列都是不可分割的原子数据项第二范式&#xff08;2NF&#xff09; 在1NF的基础上&#xff0c;非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖) 1.函数依赖A->B&#xff0c;如果通过A属性(属性组)的值…

Transformer学习【从零理解】

Transformer 一、整体框架 二、Encoder 1.输入部分: &#xff08;1&#xff09;Embedding&#xff1a;将输入的词转换为对应的词向量。 &#xff08;2&#xff09;位置编码&#xff1a;因为保证输出时&#xff0c;顺序不会打乱&#xff0c;所以要加入时序信息即位置编码。 公…

如何避免AI网红经济泡沫?警惕细分行业的AI转型而不是转行

一、AI泡沫预防针 要避免AI相关新概念催生的网红经济泡沫&#xff0c;可以从多个角度采取措施&#xff1a; 1. **理性投资**&#xff1a; - 投资者应对AI项目和网红经济中的企业进行深入研究&#xff0c;了解其真实的技术实力、商业模式的可行性和盈利能力&#xff0c;而非…

初识GO语言

是由google公司推出的一门编程语言&#xff0c;12年推出的第一个版本 Go的特点 Go为什么能在最近的IT领域炙手可热 集python简洁&C语言的性能于一身 21世纪的C语言 顺应容器化时代的到来 区块链的崛起 学习一门编程语言可以划分为下面这三个步骤 安装 编译器 or 解…

JAVA多线程之synchronized锁

文章目录 1. 临界区2. synchronized使用2.1 不加锁实现2.2 synchronized加锁2.3 面向对象的改进2.4 方法上加synchronized2.5 线程安全 3. Monitor3.1 Java对象头3.2 Monitor工作流程3.3 字节码角度 4. synchronized原理4.1 轻量级锁4.2 锁膨胀4.3 偏向锁4.3.1 偏向锁过程4.3.2…

【链表】Leetcode 2. 两数相加【中等】

两数相加 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c; 并且每个节点只能存储 一位 数字。请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外&#xff0c;这两个数都不…

Redis数据结构对象中的对象共享、对象的空转时长

对象共享 概述 除了用于实现引用计数内存回收机制之外&#xff0c;对象的引用计数属性还带有对象共享的作用。 在Redis中&#xff0c;让多个键共享同一个值对象需要执行以下两个步骤: 1.将数据库键的值指针指向一个现有的值对象2.将被共享的值对象的引用计数增一 目前来说…

pytorch 实现线性回归(Pytorch 03)

一 从零实现线性回归 1.1 生成训练数据 原始 计算公式&#xff0c; 我们先使用该公式生成一批数据&#xff0c;然后使用 结果数据去计算 计算 w1, w2 和 b。 %matplotlib inline import random import torch from d2l import torch as d2ldef synthetic_data(w, b, num_ex…

基于springboot+vue的餐饮管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Java学习笔记21——使用JDBC访问MySQL数据库

JDBC&#xff08;Java Database Connectivity&#xff0c;Java数据库连接&#xff09;是应用程序编程借口&#xff08;API&#xff09;&#xff0c;描述了一套访问关系数据库的标准Java类库。可以在程序中使用这些API&#xff0c;连接到关系数据库&#xff0c;执行SQL语句&…

IDEA Git恢复DropCommit删除的提交

刚刚Dorp commit了&#xff0c;本地代码也被删除了&#xff0c;如何恢复呢&#xff0c; 从项目中登录git&#xff0c;找到刚刚的commit代码&#xff0c;如下所示&#xff1a;输入命令git reflog 复制代码&#xff0c;到idea中&#xff0c;打开GIt&#xff0c;找到RESET HEAD, …

初始 Navicat BI 工具

早前&#xff0c;海外 LearnBI online 博主 Adam Finer 对 Navicat Charts Creator 这款 BI&#xff08;商业智能&#xff09;工具进行了真实的测评。今天&#xff0c;我们来看下他对 Navicat BI 工具的初始之感&#xff0c;希望这能给用户一些启发与建议。LearnBI online 作为…

《计算机考研精炼1000题》为你考研之路保驾护航

创作背景 在这个充满挑战与竞争的时代&#xff0c;每一位考生在备战研究生考试的过程中&#xff0c;都希望通过更多符合考纲要求的练习题来提高自己的知识和技能。为了满足这一需求&#xff0c;我们精心策划和编辑了这本《计算机考研精炼1000题》。在考研政治和考研数学领域&a…

springboot283图书商城管理系统

图书商城管理系统 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本图书商城管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理…

耳机壳UV树脂制作私模定制耳塞需要什么样的设备和技术?

制作私模定制耳塞需要使用到一些特定的设备和技术&#xff0c;包括但不限于以下内容&#xff1a; 耳模制作工具&#xff1a;用于获取用户耳型的耳模制作工具&#xff0c;如硅胶、橡皮泥等。需要使用熟练的手法和技术&#xff0c;确保耳模的准确性和稳定性。UV树脂&#xff1a;…

社交变革:探索Facebook的魔力

社交媒体平台的崛起已经改变了我们与世界的交互方式&#xff0c;而Facebook作为其中的巨头&#xff0c;其影响力和魔力更是不可忽视。本文将深入探讨Facebook如何引领社交变革&#xff0c;并探索其背后的魔力所在。 连接世界的纽带 Facebook的独特之处在于它作为一个社交平台&…