教你如何用Harbor 私有镜像仓库搭建

    一、Harbor是什么? 

Docker有个形象的比喻叫集装箱,kubernetes是舵手,而Harbor是港湾,其实是用来保存容器镜像的仓库,企业使用docker、kubernetes时,一般都需要个私有镜像仓库的,Harbor就是其中的佼佼者。官方的解释:Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。

    二、Harbor的架构    

harbor的整体架构还是很清晰的,下面简单介绍一下,下图展示harbor主要的功能组件和信息流向。

Proxy: Harbor的registry、UI、token services等组件,都处在一个反向代理后边。该代理将来自浏览器、docker clients的请求转发到后端服务上。

Registry: 负责存储Docker镜像,以及处理Docker push/pull请求。因为Harbor强制要求对镜像的访问做权限控制, 在每一次push/pull请求时,Registry会强制要求客户端从token service那里获得一个有效的token。

Core services: Harbor的核心功能,主要包括如下3个服务:

UI: 作为Registry Webhook, 以图像用户界面的方式辅助用户管理镜像。1) WebHook是在registry中配置的一种机制, 当registry中镜像发生改变时,就可以通知到Harbor的webhook endpoint。Harbor使用webhook来更新日志、初始化同步job等。2) Token service会根据该用户在一个工程中的角色,为每一次的push/pull请求分配对应的token。假如相应的请求并没有包含token的话,registry会将该请求重定向到token service。3) Database 用于存放工程元数据、用户数据、角色数据、同步策略以及镜像元数据。

Job services: 主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上。

Log: 负责收集其他模块的日志到一个地方

   三、Harbor使用    

1、安装 docker

1.1 安装依赖

## 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 添加阿里云yum源

yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 更新yum源及安装Docker-ce

yum update -y  && yum install -y docker-ce

1.4 编写daemon.json配置文件

mkdir /etc/docker ## 创建 /etc/docker 目录
## 配置 daemon. insecure-registries 是后续用来访问 harbor 私有仓库的, 表示可信任的仓库地址
## 192.168.3.155:9999为harbor私服的地址和端口
cat > /etc/docker/daemon.json <<eof< span="">
{"exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "registry-mirrors": ["https://tosnxdv7.mirror.aliyuncs.com"], "log-opts": {"max-size": "100m"}, "insecure-registries": ["192.168.3.193"]
}
EOF</eof<>

1.5 重启docker服务

systemctl daemon-reload && systemctl restart docker && systemctl enable docker

2、安装 docker-compose

wget https://linux-soft-ware.oss-cn-shenzhen.aliyuncs.com/docker-compose
chmod +x docker-compose
mv docker-compose /usr/local/bin

3、安装 Harbor

3.1 下载Harbor

wget https://github.com/goharbor/harbor/releases/download/v2.1.4/harbor-offline-installer-v2.1.4.tgz

3.2 解压

## 创建解压目录
mkdir /usr/app
## 解压到指定目录
tar xf harbor-offline-installer-v2.1.4.tgz  -C /usr/app

3.3 编辑harbor.yml配置文件

vi /usr/app/harborcp harbor.yml.tmpl harbor.ymlvim /usr/app/harbor.ymlhostname: 192.168.3.193 # 修改为自己的IP地址或者域名
# http related config
## 删除下面的https配置
http:# port for http, default is 80. If https enabled, this port will redirect to https portport: 80
# 修改登录Harbor的web端密码(用于管理界面的登录)
harbor_admin_password: 123456

4、安装 harbor

4.1 安装Harbor

./harbor/install.sh

4.2 访问 harbor

输入 https://192.168.3.193, 输入 admin/12345

5、测试能否登陆私有仓库

5.1 在客户端编辑Docker配置文件

vi /etc/docker/daemon.json### 编辑内容如下:
}"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","registry-mirrors": ["https://tosnxdv7.mirror.aliyuncs.com"],"log-opts": {"max-size": "100m"},## 添加Harbor仓库的地址(必须添加)"insecure-registries": ["192.168.3.193"]
}

5.2 加载配置文件重启Docker服务

systemctl daemon-reload && systemctl restart docker

5.3 使用docker login测下,是否成功

docker login 192.168.3.193
Username: admin
Password: 123456

6、测试镜像上传和下载

6.1 docker tag打标签

docker tag nginx:latest 192.168.3.193/test/nginx:V2

6.2 docker push 推送镜像到仓库

 docker push 192.168.3.193/test/nginx:V2

6.3 docker pull 拉取镜像

docker pull 192.168.3.193/test/nginx:V2

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

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

相关文章

接好!畅销数学界的科普书,我们免费送!

感谢一直以来的关注与支持一直以来感谢大家对超级数学建模的关注与支持&#xff01;我们热爱数学&#xff0c;对于数学的可爱、魅力以及神秘&#xff0c;我们也与大家一起探索&#xff01;我们也热爱分享&#xff0c;把每一次的数学趣味、专业知识分享给大家&#xff01;此时此…

仿豆丁百度文库网页版阅读器完整解决方案

Java平台要实现类似豆丁百度文科的文档在线阅读&#xff0c;总体思路是讲doc docx等文件格式利用openoffice转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。 此过程涉及软件(实测) openoffice3.2(window) swftools-2011-01-23-1815.exe(window) openoffice3.1.1(lin…

这表白代码让我虎躯一震!

大家都见过哪些让你虎躯一震的代码&#xff1f;就是瞬间让你怀疑人生的那种靠着这个代码成功脱单........那天边和自己喜欢的姑娘聊天 边刷微博&#xff0c;碰巧就刷到了这个图&#xff0c;结果当时脑袋一热就给人发过去了&#xff0c;但没想到对方直接就同意啦哈哈哈哈至于现在…

android cpp做成so库,android so库、jar包生成和使用

搞了很久的Android开发了&#xff0c;一直在使用别人(第三方的sdk)&#xff0c;所以今天突发奇想&#xff0c;自己搞一个NDK项目提供给其他app使用。本篇文章就从ndk环境到SDK生成、使用一起说说。废话 不多少开始动起来吧&#xff01;&#xff01;一、Android studio ndk环境点…

AgileConfig - 轻量级配置中心1.2.0发布,全新的UI

AgileConfig自发布以来有个“大问题”-UI太丑。因为当初这个项目是给自己用的&#xff0c;连UI界面都没有&#xff0c;全靠手动在数据库里改配置。后来匆匆忙忙使用bootstrap3简单的码了一些界面就发布出来了&#xff0c;易用性上也做的不够好。对此我一直耿耿于怀。终于在过年…

如何解开机器学习的面纱?

目前&#xff0c;人工智能的应用日渐广泛。而作为人工智能核心的机器学习&#xff0c;是一门多领域的交叉学科&#xff0c;专门研究计算机模拟或实现人类学习行为的方法&#xff0c;以获取新的知识或技能&#xff0c;重新组织已有的知识结构使之不断改善自身的性能。简单来说&a…

Net与Flex入门

开源项目FluorineFx就是专门针对.NET平台与Flex通信提供的AMF&#xff08;ActionScript Message Format&#xff09;协议通信网关&#xff0c;我们可以通过FluorineFx很方便的完成与.NET的通信。 另外还可以轻松的实现及时文字沟通、视频语音通信等及时交互系统的开发。 Fluori…

MAUI来了

各位很久没有和大家说端的开发了&#xff0c;技术发展特别快&#xff0c;我不知道还有多少国内的开发人员还坚守用Xamarin&#xff0c;但是.NET的迭代变化还是让国内.NET社区热闹起来了。去年虽然疫情&#xff0c;但微软还是在Build上发布了MAUI。微软这次把MAUI完全整合到了.N…

编程到底难在哪里? 从一个美国实习生的故事说起

记得之前组里来了一个美国实习生小伙子&#xff0c;很极客的那种&#xff0c;干活快&#xff0c;一天能给你写2000行代码(我复查的速度跟不上他写的速度)&#xff0c;让做什么东西&#xff0c;上午告诉做个这个功能&#xff0c;下午就能在测试环境跑起来演示了。跟他单独开会的…

温故知新,DotNet Core SDK和.Net CLI十八般武艺

简介.NET命令行接口 (CLI) 工具是用于开发、生成、运行和发布.NET应用程序的跨平台工具链。https://docs.microsoft.com/zh-cn/dotnet/core/tools/SDK.NET SDK (Software Development Kit) v5.0.201.exe里程碑发布日期.NET Core 2.1.x (servicing)LTS (Long Term Support) rele…

谁说数学没用,一旦我们用在赚钱上,全世界都害怕

今天来说说“量化”投资这个门派的开山祖师、美国“赌神”——爱德华 索普。爱德华 索普是一位大教授&#xff0c;天才数学家&#xff0c;非常喜欢扑克牌博弈游戏。一般人玩扑克也就只盯着眼前输赢&#xff0c;爱德华 索普却花了两年时间利用早期的IBM计算机和概率论中的凯利…

2021年春招Elasticsearch面试题

1、Elasticsearch是如何实现master选举的&#xff1f;1、对所有可以成为master的节点根据nodeId排序&#xff0c;每次选举每个节点都把自己所知道节点排一次序&#xff0c;然后选出第一个&#xff08;第0位&#xff09;节点&#xff0c;暂且认为它是master节点。 2、如果对某个…

android qq红包,Android实现QQ抢红包插件

又想到快要过年了&#xff0c;到时候还不知道群里要发好多红包&#xff0c;所以我将之前在网上宕的一份微信抢红包的代码修改了一下&#xff0c;实现了QQ抢红包&#xff01;可以支持抢QQ拼手气红包&#xff0c;普通红包&#xff0c;口令红包&#xff0c;现在再也不怕20年单身手…

8个Python高效数据分析的技巧

不管是参加Kaggle比赛&#xff0c;还是开发一个深度学习应用&#xff0c;第一步总是数据分析。这篇文章介绍了8个使用Python进行数据分析的方法&#xff0c;不仅能够提升运行效率&#xff0c;还能够使代码更加“优美”。一行代码定义List定义某种列表时&#xff0c;写For 循环过…

NET问答: 如何在 ASP.NET Core Web API 的 Response 中添加自定义的 Header ?

咨询区 JDawg&#xff1a;我正在将 Web API 2 移植到 ASP.NET Core Web API 上&#xff0c;以前我都直接在 Response 属性上添加自定义的 Header&#xff0c;如下代码所示&#xff1a;HttpResponseMessage response new HttpResponseMessage(HttpStatusCode.OK); response.Hea…

一个免费兑换iPhone X的机会,就这样被你错过了

嗨~我是大家最爱的小树&#xff0c;第一次写文&#xff0c;有点小鸡冻&#xff01;&#xff01;&#xff01;小树此行是带着超模君的礼物来的哦&#xff01;上周准备会员周回馈粉丝的时候&#xff0c;超模君突然决定要送模友们&#xff1a;iPhone X &#xff01;&#xff01;&a…

正则表达式学习神器!

推荐一款优秀的正则表达式在线可视化工具我相信很多朋友第一次听到正则表达式时&#xff0c;都感觉这是一个高大上的名词。其实&#xff0c;简单来说&#xff0c;正则表达式就是用来匹配文本的。正则表达式里的 “正” 是指常客&#xff0c;即经常出现、通用的意思&#xff1b;…

数据可视化,带给你的惊艳并不止这一点!

在大数据时代的现今&#xff0c;数据庞大且繁杂&#xff0c;仅通过简单的数据整理得出清晰的结论&#xff0c;已经不太合理。实际上&#xff0c;若要简明扼要地展示出结论&#xff0c;不妨考虑一下数据可视化。那么&#xff0c;什么是数据可视化呢&#xff1f;数据可视化&#…

关于C3P0容错和自动重连特性的研究

为什么80%的码农都做不了架构师&#xff1f;>>> 最近常有数据库和网络设备升级和搬迁等事情&#xff0c;而各个应用都是基于数据库连接池做的&#xff0c;大部分都是基于C3P0&#xff0c;数据库或网络状况的变动都会导致客户端连接池中的connection失效&#xff0c…

android otg主从切换,一种自动切换OTG设备主从模式下的Vbus电压的方法与电路与流程...

本发明涉及otg设备的检测领域&#xff0c;更具体地说&#xff0c;涉及一种自动切换otg设备主从模式下的vbus电压的方法与电路。背景技术&#xff1a;现有技术中&#xff0c;具备otg功能的设备通过检测usb_id引脚的状态来判断工作为host(主模式/usb_id悬空)或者device(从模式/us…