【云原生】私有镜像的解决方案-Harbor管理实战

news2024/11/28 18:40:20

前言

通过前面的镜像管理,我们知道docker的开发和运行都离不开镜像管理,如果要进行镜像管理就需要使用镜像仓库。

docker官方提供的镜像仓库是: docker hub, 很方面但从安全和效率的角度考虑,这样的公有镜像环境就无法在企业私有环境中使用了。所以我们今天来探讨下企业中私有镜像的管理-harbor管理实战

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

文章目录

  • 前言
  • 一. Harbor的前世今生
    • 1.1 什么是Harbor
    • 1.2 Harbor的核心组件
    • 1.3 安装Harbor的环境
  • 二. 安装Habor前的准备工作
    • 2.1 安装docker
    • 2.2 安装docker compose
  • 三. 安装Harbor
    • 3.1 从github中下载harbor文件
    • 3.2 解压
    • 3.3 修改配置
    • 3.4 执行install命令
    • 3.5 通过浏览器访问
  • 总结

一. Harbor的前世今生

1.1 什么是Harbor

Harbor是由VMware公开开发并开源的企业级的docker镜像管理项目,它包括镜像的权限管理,目录访问,日志审核,界面管理,自我注册,镜像复制和中文支持等功能。

1.2 Harbor的核心组件

  • Proxy(代理):Harbor的组件,如注册表,UI和令牌服务,均位于逆向代理之后。代理将来自浏览器和Docker客户端的请求转发到各种后端服务。
  • Registry(image仓库):负责存储Docker Images和处理Docker pull/push命令。由于Harbor需要强制对imagess进行访问控制,Registry会将客户端引导到令牌服务,以获取每个pull或push请求的有效令牌。
  • Core services(核心服务):Harbor核心职能,主要提供以下服务:
  • UI:用于帮助用户管理Registry Webhook上的Images的图形用户界面:Webhook是在注册表中配置的一种机制,以便Registry中的Images状态更改可以填充到Harbor的Webhook端点。Harbor使用webhook更新日志,启动复制和其他一些功能。
  • 令牌服务:根据用户对项目的作用,负责为每个停靠点pull/push命令发出令牌。如果从Docker客户端发送的请求中没有令牌,则Registry将将请求重定向到令牌服务。数据库:数据库存储项目,用户,角色,复制策略和图像的元数据。
  • Job services(工作服务):用于Images复制,本地映像可以复制(同步)到其他Harbor实例。
  • Log collector(日志收集器):负责在单个地方收集其他模块的日志。

1.3 安装Harbor的环境

  • centos7,需要有可用的网络
  • 关闭防火墙和selinux
[root@mufenggrow ~]# systemctl stop firewalld
[root@mufenggrow ~]# setenforce 0
  • 设置hosts的一对一映射关系
[root@mufenggrow ~]# cat >>/etc/hosts<<EOF
> 192.168.1.41 mufenggrow
> EOF
[root@mufenggrow ~]# tail -1 /etc/hosts
192.168.1.41 mufenggrow
[root@mufenggrow ~]# 

二. 安装Habor前的准备工作

2.1 安装docker

如果你的docker还没有安装,请参考: CentOS7系统安装最新版本docker实战
如果你想离线安装docker,可以参考:CentOS7操作系统离线安装docker

确保你的docker是启动状态:
在这里插入图片描述

2.2 安装docker compose

  1. 从github中下载:

docker compose 是docker的编排工具,可以从github中下载:

[root@mufenggrow ~]# curl -SL https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 42.8M  100 42.8M    0     0  13.2M      0  0:00:03  0:00:03 --:--:-- 18.5M

如果你不确定下载哪个版本可以使用这个命令:

[root@mufenggrow ~]# curl -SL https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-·uname-s`-`uname-m` -o /usr/local/bin/docker-compose

  1. 给docker compose加上可执行权限
[root@mufenggrow ~]# chmod +x /usr/local/bin/docker-compose 
  1. 确定docker compose版本的信息:
[root@mufenggrow ~]# docker-compose version
Docker Compose version v2.15.1

三. 安装Harbor

3.1 从github中下载harbor文件

Harbor的压缩包下载地址:https://github.com/goharbor/harbor/releases

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

3.2 解压

使用tar命令解压即可:

[root@mufenggrow ~]# tar xf harbor-offline-installer-v2.5.6.tgz 
[root@mufenggrow ~]# ls
anaconda-ks.cfg  harbor-offline-installer-v2.5.6.tgz  公共  视频  文档  音乐
harbor           initial-setup-ks.cfg                 模板  图片  下载  桌面
[root@mufenggrow ~]# 

3.3 修改配置

登录到darbor文件中进行修改

这里需要注意:先看一下文件,这里跟以前的版本已经不一样了,没有了harbor.cfg文件。
我们需要copy一个harbor.yml文件进行修改
在这里插入图片描述

[root@mufenggrow harbor]# cp harbor.yml.tmpl harbor.yml

修改yml文件:

  • 修改hostname: IP,必须是固定IP或者域名(不能是127.0.0.1)
  • 修改访问端口8080,默认是80,一般我们80都有其他用处;
  • https我们没有证书,一定注释掉。要不然后面会提示不成功;
  • 修改密码,默认密码是Harbor12345,在这里如果不改,第一次登录也会提示改的。

在这里插入图片描述

密码尽可能不用默认密码
在这里插入图片描述

可选修改:

location: /data/harbor/logs 日志存放
data_volume: /data/harbor 数据存放
说明:修改前必须先创建好目录

3.4 执行install命令

[root@mufenggrow harbor]# ls
common.sh  harbor.v2.5.6.tar.gz  harbor.yml  harbor.yml.tmpl  install.sh  LICENSE  prepare
[root@mufenggrow harbor]# ./install.sh 

若执行过程中出现:

[+] Running 0/1
 ⠿ Network harbor_harbor  Error                                                                           0.2s
failed to create network harbor_harbor: Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-5515db969ebc -j RETURN: iptables: No chain/target/match by that name.
 (exit status 1))

解决方法: 重启下docker,再次运行 ./install.sh

如下图表示安装成功:

在这里插入图片描述

3.5 通过浏览器访问

访问: http://192.168.1.41:8080

下图中,我的IP因为是自动获取,换了个地方后,变成了192.168.1.56,你无须修改IP。

在这里插入图片描述
登录成功之后:

在这里插入图片描述

总结

以上就是Harbor实战的全部内容了,如果对你有用记得点赞收藏哦。

💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
💕 本文由沐风晓月原创,首发于CSDN博客, 博客主页:mufeng.blog.csdn.net
💕 日拱一卒无尽有,功不唐捐终入海
💕 喜欢的话记得点赞收藏哦

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

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

相关文章

Qt文件系统源码分析—第一篇QFile

深度 本文主要分析Windows平台&#xff0c;Mac、Linux暂不涉及 本文只分析到Win32 API/Windows Com组件/STL库函数层次&#xff0c;再下层代码不做探究 本文QT版本5.15.2 类关系图 QTemporaryFile继承QFile QFile、QSaveFile继承QFileDevice QFileDevice继承QIODevice QIODev…

实用技能 || 从安装到实战!Citespace、vosviewer保姆级教程!

【基于Citespace和vosviewer文献计量学相关论文 】 专题一&#xff1a;文献计量学方法与应用 1 文献计量学方法基本介绍 2 与其他综述方法区别联系 3 各学科领域应用趋势近况 4 主流分析软件优缺点对比 5 经典高分10SCI思路复盘 6 软件安装与Java环境配置 专题二&#…

【IDEA】DeBug(图文并茂)

文章目录 01_Debug简介和意义02_IDEA中的Debug步骤03_跳转到当前代码执行的行04_步过调试的使用05_步入调试的使用06_强制步入调试的使用07_步出调试的使用08_回退断点调试的使用09_运行到光标处10_计算表达式11_条件断点12_多线程调试 IDAEA&#xff08;Interactive Data Anal…

【k8s】【ELK】Sidecar容器运行日志Agent

1、日志收集场景分析与说明 对于那些能够将日志输出到本地文件的Pod&#xff0c;我们可以使用Sidecar模式方式运行一个日志采集Agent&#xff0c;对其进行单独收集日志1、首先需要将Pod中的业务容器日志输出至本地文件&#xff0c;而后运行一个Filebeat边车容器&#xff0c;采…

【Mysql实战】存储过程详解

快速入门 创建存储过程 CREATE PROCEDURE p1()BEGIN-- SQL语句SELECT count(*) FROM user; END;调用存储过程 CALL p1();查看存储过程 SHOW CREATE PROCEDURE 存储过程名称删除存储过程 DROP PROCEDURE [ IF EXISTS ] 存储过程名称 ;入参出参 IN&#xff1a;该类参数作为输…

关于不同处理器的函数调用规则

关于不同处理器的函数调用规则 接前面一篇变长参数调用的记录&#xff0c;这次从原理上进行了进一步研究。 不同调用规则对对于编译出来的汇编影响很大的&#xff0c;这里之前的理解比较粗浅&#xff0c;尤其是一般教科书或者网上能看到的内容都比较老&#xff0c;这里记录一下…

【马蹄集】第十一周作业

第十一周作业 目录 MT2012 竹鼠的白色季节MT2013 照亮街道MT2014 打靶MT2026 二维坐标点移动MT2027 一秒成零 MT2012 竹鼠的白色季节 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;250M 题目描述 小码哥的竹鼠养殖场中的竹鼠都在一条直线的隔间…

深度学习笔记之递归网络(一)引子:序列模型

深度学习笔记之递归网络——引子&#xff1a;序列模型 引言回顾&#xff1a;齐次马尔可夫假设序列模型序列信息序列数据建模 引言 从本节开始&#xff0c;将介绍递归网络系列。本节将介绍序列模型。 回顾&#xff1a;齐次马尔可夫假设 齐次马尔可夫假设——在隐马尔可夫模型…

LeetCode 124. 二叉树中的最大路径和

124. 二叉树中的最大路径和 描述 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一…

收藏|必读10本pcb设计书籍推荐

1."High-Speed Digital Design: A Handbook of Black Magic"。 作者是Howard Johnson和Martin Graham。这是一本关于高速数字电路设计的优秀教材&#xff0c;适合那些需要设计高速电路的工程师。 作为比较早出来的信号完整性参考书&#xff0c;对国内的信号完整性研…

Apollo与SpringBoot整合原理深度剖析

Apollo与SpringBoot整合原理深度剖析 Spring环境上下文模块Value注解如何完成属性注入application.yml等配置文件加载时机监听环境上下文prepared事件Loader加载配置文件 Apollo与SpringBoot整合原理Value注解的热更新原理 Spring环境上下文模块 Spring Envionment设计如下: 需…

Unlimiformer:一个Transformers输入无限长文本思路和中文长文本摘要上的性能实验

Unlimiformer&#xff1a;一个Transformers输入无限长文本思路和中文长文本摘要上的性能实验 1、前言 在处理长文本输入时&#xff0c;以往方法常采用截断&#xff08;如&#xff1a;max_len512&#xff09;、分块&#xff08;将输入分成多个块&#xff0c;并进行逐块处理&am…

【EasyPoi实战系列】Spring Boot使用EasyPoi实现多Sheet导出 - 第470篇

悟纤&#xff1a;师傅&#xff0c;那个讨人厌的产品又来捣乱了~ &#x1f612; 师傅&#xff1a;哈哈&#xff0c;你又来抱怨老板设定的无休止需求了啊&#xff1f; &#x1f606; 悟纤&#xff1a;没错&#xff0c;这次竟然要求导出多个Sheet&#xff0c;这还能不能好好地活着…

十九、Sleuth整合Zipkin链路跟踪

目录 链路跟踪概述 SpringCloud Sleuth 1、架构图 2、主要概念 2.1、跟踪&#xff1a;Trace (一条完整链路--包含很多span(微服务接口)) 2.2、跨度&#xff1a;Span 2.3、标注&#xff1a;Annotation Sleuth整合Zipkin实现分布式链路跟踪 1、搭建zipkin环境 1.1、下载…

2023年5月中国数据库排行榜:OTO组合回归育新机,华为高斯蓄势待发展雄心

路漫漫其修远兮&#xff0c;吾将上下而求索。 2023年5月的 墨天轮中国数据库流行度排行 火热出炉&#xff0c;本月共有262个数据库参与排名。本月排行榜前十变动较大&#xff0c;可以用一句话概括为&#xff1a;openGauss 立足创新夺探花&#xff1b;华为云GaussDB 云上之争成赢…

单片机设计_室内环境智能监测系统(STM32 OLED ESP8266 DHT11 MQ-2 加湿器)

想要更多项目私wo!!! 一、电路设计 室内环境智能监测系统 主要功能: 1.检测空气温湿度 2.检测光照强度 3.检测烟雾浓度 4.数据显示在手机端和设备OLED屏幕上 5.当空气温度高于设定的阈值时&#xff0c;风扇开启 6.当空气湿度…

【Linux从入门到精通】上下文概念详解

上篇文章&#xff08;进程的基本概念&#xff09;我们讲解了进程后&#xff0c;还留下了一个上下文数据概念还没有解释。本篇文章会对上下文概念进行详解。在理解上下文概念时&#xff0c;同时会引出很多新的概念。我们都会对此进行详细解释&#xff0c;希望本篇文章会对你有所…

7款产品经理必备的交互软件

作为UI/UX设计师&#xff0c;我相信你或多或少接触过很多交互设计软件。 为您整理总结了几款流行的交互软件。如果您在上述交互设计软件中确实存在选择困难&#xff0c;希望通过阅读本文帮助您快速做出正确的选择。 即时设计 即时设计是一款「专业UI设计工具」&#xff0c;不…

redis从零开始(1)----基本类型:string/hash/list

认识redis NoSQL Nosql not only sql&#xff0c;泛指非关系型数据库&#xff0c;与之相对的是RDBMS(Relational Database Management System)&#xff0c;即关系型数据库 关系型数据库&#xff1a;列行&#xff0c;同一个表下数据的结构是一样的。 非关系型数据库&#xff…

企业有必要对三方应用进行安全管控吗?

什么是三方应用&#xff1f; 三方应用是指由第三方开发者创建的软件应用程序&#xff0c;与操作系统或其他主要平台的开发公司无关。这些应用程序通常被设计为在特定平台上运行&#xff0c;并且具有特定的功能或服务&#xff0c;例如社交媒体应用程序、游戏和生产力工具等。 简…