CentOS 搭建 Harbor 镜像仓库(图文详解)

news2024/9/21 19:00:02

本文目录

  • 1. 下载 Harbor 安装包
  • 2. 解压
  • 3. 修改配置文件
  • 4. 安装 Harbor
  • 5. 修改 docker 配置
  • 6. docker 登录方式
  • 7. 访问 Harbor Web 界面
  • 8. 创建证书
  • 9. 生成证书
  • 10. 更新配置
  • 11. 网页登录

说明:在搭建 Harbor 镜像仓库之前,虚拟机要先安装 docker 和 docker-compose。

本文接下来的命令都是在 root 身份下运行的。

1. 下载 Harbor 安装包

  • 直接下载可以使用以下命令:
    wget https: /github.com/goharbor/harbor/releases/download/v2.8.2/harbor-offline-installer-v2.8.2.tgz
    
    直接在虚拟机内部执行上面这条命令的话,下载速度会很慢,所以此处通过外部主机下载后共享文件夹导入虚拟机中。

2. 解压

  • 输入以下命令进行解压:
    tar -xvf harbor-offline-installer-v2.8.2.tgz
    

在这里插入图片描述

  • 新建一个目录,将 harbor 目录下的文件移动到该目录下。依次输入以下命令:

    mkdir /opt/harbor
    mv harbor/* /opt/harbor
    cd /opt/harbor
    

在这里插入图片描述

3. 修改配置文件

  • 复制一份 harbor 的配置文件并改名 harbor.yml,输入以下命令:

    cp -ar harbor.yml.tmpl harbor.yml
    
  • 进入配置文件,输入以下命令:

    vim harbor.yml
    

在这里插入图片描述

  • 修改 hostnameport

    hostname: 192.168.138.130 # 这里改为虚拟机的 IP
    port: 85 # 开放端口
    # 注释 https 相关部分,从13行开始
    

在这里插入图片描述

4. 安装 Harbor

  • 编辑完配置文件,接下来在 harbor 目录下安装 Harbor。

  • Harbor 安装环境预处理,输入以下命令:

    ./prepare
    

在这里插入图片描述

  • 安装并启动 Harbor,输入以下命令:

    ./install.sh
    

在这里插入图片描述

如上图所示,安装并启动成功!

  • 检查是否安装成功(应该是启动9个容器)。输入以下命令:

    docker-compose ps
    

在这里插入图片描述

5. 修改 docker 配置

  • 进入配置文件,输入以下命令:

    vim /etc/docker/daemon.json
    
  • 在配置文件中添加以下内容(添加阿里云镜像下载地址):

    {
    "registry-mirrors": ["https://ov31ob13.mirror.aliyuncs.com"]
    }
    
  • 重启 docker 和 harbor 容器,依次输入以下命令:

    systemctl restart docker
    docker-compose stop
    docker-compose up -d
    

在这里插入图片描述

6. docker 登录方式

  • 输入以下命令进行登录:

    docker login 192.168.138.130:85
    

    然后输入用户名(admin)和密码(Harbor12345)。

  • 或者直接输入下面这条命令登录即可:

    docker login -u admin -p Harbor12345 192.168.138.130:85
    

7. 访问 Harbor Web 界面

  • 在浏览器输入以下地址:

    http://192.168.138.130:85
    
  • 输入用户名和密码,用户名和密码均为默认值:

    用户名:admin
    密码:Harbor12345
    

在这里插入图片描述

至此,CentOS7 搭建 Harbor(http)镜像仓库完成!

接下来在上面操作的基础上搭建 Harbor(https)镜像仓库。

8. 创建证书

  • 在工作目录下创建证书存放目录,依次输入以下命令:

    mkdir ssl
    cd ssl
    

    配置 Harbor 通过 https 访问时均在新建的 ssl 目录下进行操作。

在这里插入图片描述

  • ssl 目录下输入以下命令:

    openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 3650 -out ca.crt
    

    注:输入该命令后,一路回车5次直至出现 Common Name 输入(因为是 CA,可不输入 IP 或域名):Harbor Cert Root CA Harbor,为自定义名称。

下面是对该命令的解释:这个命令用于使用 OpenSSL 生成自签名的根证书(Root Certificate)。

  • openssl:表示要使用 OpenSSL 命令。
  • req:表示生成证书签署请求(Certificate Signing Request)。
  • -newkey rsa:4096:指定生成一个新的 RSA 私钥,并且密钥长度为 4096 位。
  • -nodes:指定生成私钥时不进行加密,以便后续在没有密码的情况下使用该私钥。
  • -sha256:使用 SHA256 算法生成证书的摘要。
  • -keyout ca.key:指定将生成的私钥保存为 ca.key 文件。
  • -x509:生成自签名的根证书。
  • -days 3650:指定生成的根证书的有效期为 3650 天(10年)。
  • -out ca.crt:指定将生成的根证书保存为 ca.crt 文件。

执行这个命令后,将获得一个名为 ca.key 的私钥文件和一个名为 ca.crt 的自签名根证书文件。这个根证书可以用于签署其他证书,以建立自己的证书颁发机构(CA)来签发更多的证书。

9. 生成证书

  • 生成证书签名请求。在 ssl 目录下输入以下命令:

    openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.key -out harbor.csr
    

    注:输入该命令后,一路回车5次出现 Common Name 输入 IP 或域名,此处为:192.168.138.130。

在这里插入图片描述

如上图所示,下面是可能会遇到的交互提示及其相应的解释:

  • Country Name (2 letter code) [XX]::输入您所在国家的两个字母的国家代码,例如中国为 “CN”、美国为 “US”。
  • State or Province Name (full name) []::输入您所在的省份或州的全名。
  • Locality Name (eg, city) [Default City]::输入您所在的城市名称。
  • Organization Name (eg, company) [Default Company Ltd]::输入您的组织或公司的名称。
  • Organizational Unit Name (eg, section) []::输入您的组织或公司的部门名称,可留空。
  • Common Name (eg, your name or your server's hostname) []::输入您或您的服务器的主机名。如果您正在生成证书签署请求,可以使用一个描述性的名称,或者使用您的服务器的域名(如果有)。
  • Email Address []::输入与证书相关的电子邮件地址,可留空。
  • A challenge password []::留空,直接按回车键继续。
  • An optional company name []::可留空,直接按回车键继续。
  • 新建文件,在 ssl 目录下输入以下命令:

    touch extfile.cnf
    
  • 进入文件,输入以下命令:

    vim extfile.cnf
    
  • 进入该文件后添加以下内容:

    subjectAltName = @alt_names
    extendedKeyUsage = serverAuth
    [alt_names]
    # 域名,如有多个用DNS.2,DNS.3…来增加
    DNS.1 = xxx.harbor.cn
    DNS.2 = *.harbor.cn
    # IP地址, 服务器的ip
    IP.1 = 192.168.138.130
    IP.2 = 127.0.0.1
    
  • ssl 目录下输入以下命令:

    openssl x509 -req -days 3650 -in harbor.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out harbor.crt
    

在这里插入图片描述

10. 更新配置

  • 查看 harbor.crtharbor.key 文件所在的路径,配置文件时需要用。

在这里插入图片描述

  • 编辑 harbor.yml 文件,修改该文件时需要注意缩进。修改内容如下:

    cd harbor
    vim harbor.yml
    

在这里插入图片描述

  • harbor 目录下执行命令更新配置,使 yml 配置文件生效。依次输入以下命令:

    ./prepare
    ./install.sh
    

11. 网页登录

  • 在登录前关闭虚拟机防火墙(或者防火墙在开启状态下允许444端口)。登录地址如下:

    https://192.168.138.130:444
    

在这里插入图片描述

  • 用户名和密码不变,还是和前面 Harbor(http)一致。

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

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

相关文章

123.买卖股票的最佳时机3

目录 一、题目 二、分析代码 一、题目 123. 买卖股票的最佳时机 III - 力扣&#xff08;LeetCode&#xff09; 二、分析代码 class Solution { public:int maxProfit(vector<int>& prices) {//0表示没有操作//1表示第1次买入&#xff0c;2表示第1次卖出//3表示第2…

Blazor前后端框架Known-V1.2.10

V1.2.10 Known是基于C#和Blazor开发的前后端分离快速开发框架&#xff0c;开箱即用&#xff0c;跨平台&#xff0c;一处代码&#xff0c;多处运行。 Gitee&#xff1a; https://gitee.com/known/KnownGithub&#xff1a;https://github.com/known/Known 概述 基于C#和Blazo…

LeetCode 42. 接雨水(动态规划 / 单调栈)

题目&#xff1a; 链接&#xff1a;LeetCode 42. 接雨水 难度&#xff1a;困难 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2…

【Spring Cloud 六】Hystrix熔断

这里写目录标题 系列文章目录背景一、Hystrix是什么服务雪崩服务容错的相关概念熔断器降级超时控制限流 二、会什么要有Hystrix三、如何使用Hystrix进行熔断处理整体项目代码服务提供者pom文件yml配置文件启动类controller 服务消费者pom文件yml配置文件启动类feignhystrixcont…

python机器学习(七)决策树(下) 特征工程、字典特征、文本特征、决策树算法API、可视化、解决回归问题

决策树算法 特征工程-特征提取 特征提取就是将任意数据转换为可用于机器学习的数字特征。计算机无法直接识别字符串&#xff0c;将字符串转换为机器可以读懂的数字特征&#xff0c;才能让计算机理解该字符串(特征)表达的意义。 主要分为&#xff1a;字典特征提取(特征离散化)…

数据结构和算法——了解哈希表(哈希查找、散列的基本思想)

目录 哈希查找 散列的基本思想 例一 例二 哈希查找 我们之前学过的几种查找方法&#xff1a; 顺序查找 二分查找&#xff08;静态查找&#xff09; 二叉搜索树 h为二叉查找树的高度平衡二叉树 还有没有更快的查找方法呢&#xff1f; …

安卓:实现复制粘贴功能

目录 一、介绍 &#xff08;一&#xff09;ClipboardManager介绍 1、ClipboardManager常用方法&#xff1a; 2、获取 ClipboardManager实例 &#xff08;二&#xff09;、ClipData介绍 1、创建ClipData对象&#xff1a; 2、获取ClipData的信息&#xff1a; 3、ClipData…

原型链污染攻击

原型链污染攻击 prototype 和 _proto_是什么 JavaScript中的类的简历 在JavaScript中&#xff0c;我们如果要定义一个类&#xff0c;需要以定义“构造函数”的方式来定义&#xff1a; function Foo() {this.bar 1 }new Foo() 解析&#xff1a; Foo函数的内容&#xff0c;就…

【Redis】——AOF持久化

什么是AOF日志 AOF日志是redis为数据的持久化提供了的一个技术,日志里面记录着执行redis写命令。每当redis执行一条写命令的时候&#xff0c;就会将该命令记录 到AOF日志当中。当redis启动的时候&#xff0c;可以加载AOF日志中的所有指令&#xff0c;并执行这些指令恢复所有的…

RocketMQ基本概念和高级原理

基础概念 消息模型 RocketMQ 主要由 Producer、Broker、Consumer 三部分组成&#xff0c;其中 Producer 负责生产消息&#xff0c;Consumer 负责消费消息&#xff0c;Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器&#xff0c;每个 Broker 可以存储多个 Topic…

ubuntu搭建wifi热点,共享网络(x86、arm相同)

目录 1 首先检查网络管理器服务是否开启 &#xff08;ubuntu需要界面&#xff09; 2 创建并配置需要共享的wifi 首先&#xff0c;明确下这篇文章说的是啥&#xff0c;是为了在ubuntu系统的电脑上&#xff0c;搭建一个wifi热点&#xff0c;供其他移动设备连接上网。就像你…

使用隧道HTTP时如何解决网站验证码的问题?

使用代理时&#xff0c;有时候会遇到网站验证码的问题。验证码是为了防止机器人访问或恶意行为而设置的一种验证机制。当使用代理时&#xff0c;由于请求的源IP地址被更改&#xff0c;可能会触发网站的验证码机制。以下是解决网站验证码问题的几种方法&#xff1a; 1. 使用高匿…

android AIDL 学习使用

在android studio 2023.2中使用 1、在buidl.gradle增加以下配置&#xff0c;然后同步。不增加这些配置&#xff0c;创建aidl时显示为灰色&#xff0c;不能创建 buildFeatures {compose true// Disable unused AGP featuresbuildConfig falseaidl truerenderScript falseresVal…

手眼标定眼在手上

1、为什么要用手眼标定&#xff08;在贴片机上定位已调通&#xff09; 参考手眼标定特别是眼在手上在网上的文章很多&#xff0c;但很多在实际中调试不通。在定位时候&#xff0c;往往希望相机能返回的是机械的世界坐标&#xff0c;而不是相机的的图像坐标。从而间接计算出相机…

JavaWeb三大组件 —— Servlet

目录 servlet 注册servlet 父pom pom文件 1、通过注解注册 2、使用ServletRegistrationBean注册 API三生三世 第一生Servlet 第二生SpringMVC 今生SpringBoot servlet Servlet的作用&#xff1a; 接受请求参数、处理请求&#xff0c;响应结果&#xff0c;&#xff08;就…

Qlik Sense 移动端安装配置

在之前的文章中&#xff0c;我们了解到Qlik Sense是一款数据分析可视化的应用&#xff0c;使人们能够轻松地组合来自许多不同来源的数据&#xff0c;并自由探索&#xff0c;而不受基于查询的工具的限制。不仅支持Web端访问&#xff0c;还有配套的Windows Desktop使用&#xff0…

最新2024届【海康威视】内推码【GTK3B6】

最新2024届【海康威视】内推码【GTK3B6】 【内推码使用方法】 1.请学弟学妹们登录校招官网&#xff0c;选择岗位投递简历&#xff1b; 2.投递过程中填写内推码完成内推步骤&#xff0c;即可获得内推特权。 内推码&#xff1a;GTK3B6 内推码&#xff1a;GTK3B6 内推码&…

边写代码边学习之RNN

1. 什么是 RNN 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一种以序列数据为输入来进行建模的深度学习模型&#xff0c;它是 NLP 中最常用的模型。其结构如下图&#xff1a; x是输入&#xff0c;h是隐层单元&#xff0c;o为输出&#xff…

有哪些好用的AI绘画网站?

随着人工智能技术的发展&#xff0c;人工智能绘画工具逐渐成为数字艺术领域的热门话题。人工智能绘画工具是利用深度学习和其他技术来模拟绘画过程和效果的工具&#xff0c;可以帮助用户快速创作高质量的艺术作品。除了Midjourney、除了openai等流行的AI绘画工具外&#xff0c;…

Flutter游戏引擎Flame系列笔记 - 1.Flame引擎概述

Flutter游戏引擎Flame系列笔记 1.Flame引擎概述 - 文章信息 - Author: 李俊才(jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/132119035 【介绍】…