教你如何用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;此时此…

android 监听布局改变,Android通过监听最外层布局的改变监听键盘的状态,软键盘的弹出和收起都会改变外层布局(前提是把Activity的mode设置成压缩);...

最外层布局.addOnLayoutChangeListener(new OnLayoutChangeListener() {Overridepublic void onLayoutChange(View arg0, int arg1, int arg2, int arg3,int arg4, int arg5, int arg6, int arg7, int arg8) {// TODO Auto-generated method stubif(EditText.hasFocus()){/*** …

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

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

NET问答: 如何使用 C# 自动化关闭电脑 ?

咨询区 roomaroo&#xff1a;我查阅资料发现有一些可使用 C# 关闭用户电脑的方法&#xff0c;但我觉得都不是很简洁&#xff0c;所以我想在这里寻找一种简单或者使用原生 .NET 关闭的方式。回答区 Pop Catalin&#xff1a;很简单&#xff0c;直接用 C# 调用 cmd 执行 shutdown …

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

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

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

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

菜鸟修炼C语言小设计之——工资统计

本设计完成一个工资统计的小设计&#xff0c;涉及的C语言重点知识有&#xff1a; 1&#xff0c;结构体 2&#xff0c;结构体指针数组 3&#xff0c;枚举类型 1.1 设计题目 本课程设计要求设计一个公司职员的数据结构&#xff0c;并使用结构指针数组存储职员信息&#xff0c;统计…

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

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

android 无法安装测试版本,在测试应用更新时,安装无提示阻止Android版本构建签名APK...

当我尝试更新我的应用程序(在已经从playstore安装的应用程序上手动安装带有更高版本的已签名APK)时,它未被安装(“应用程序未安装“)并在Studio中显示以下错误&#xff1a;I/Finsky: [1144] com.google.android.finsky.verifier.impl.en.c(263): Verifying id8,result-1I/Finsk…

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

目前&#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;下午就能在测试环境跑起来演示了。跟他单独开会的…

华为平板搭鸿蒙,首款麒麟9000平板入网,全系搭载鸿蒙OS,华为反击了!

虽然华为麒麟芯片存货越来越少了&#xff0c;但是关于华为手机和华为平板的消息还是很多的&#xff0c;这证明华为的大招估计还没有放完。最近一款新的华为平板入网&#xff0c;比较让人惊讶的是&#xff0c;这款平板竟然依旧搭载了麒麟9000处理器&#xff0c;并且在其它配置上…

oop1

1、面向过程编程方法&#xff0c;是将程序看成一个个步骤&#xff1b;而面向对象编程(OOP)方法是将程序看成一个个具有不同功能的部件在协同工作&#xff0c;类就是描述这些部件的数据结构和行为方式&#xff0c;而对象就是这些具体的部件。 2、对象的定义&#xff1a;一个对象…

温故知新,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…

android bitmap string,Android Bitmap到Base64字符串(Android Bitmap to Base64 String)

Android Bitmap到Base64字符串(Android Bitmap to Base64 String)如何将一个大的Bitmap(用手机相机拍摄的照片)转换为Base64 String&#xff1f;How do I convert a large Bitmap (photo taken with the phones camera) to a Base64 String?原文&#xff1a;https://stackover…

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

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

网络工程师要如何选择?

09年,迷茫的我走上了IT这条路子. 一年的时间,自己边学习边工作,在学习的同时实践那些技术. 不停的学习,脚步一直都都没停止的向前走. 学习着各种各样的技术,LINUX\CISCO\SQL\等等等等...... 一开始因为不懂,本身想学习的是JAVA\C\C#\等关于编程的技术...可是莫名的就走到的服务…

2021年春招Elasticsearch面试题

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