企业级镜像仓库Harbor的安装与配置

news2025/5/25 7:16:06

企业级镜像仓库Harbor的安装与配置

  • Harbor
    • Harbor概述
    • 安装Harbor
    • 配置 Harbor
    • 运行安装程序脚本
    • 登录
    • 启动与停止Harbor
  • 登录Harbor仓库
    • 登录异常
    • 解决方案
    • 登录
    • 退出
  • 推送拉取Harbor镜像
    • 镜像命名规范
    • 创建项目
    • 推送镜像
    • 拉取镜像

Harbor

Harbor概述

Harbor是一个开源的容器镜像仓库管理系统,具有丰富的安全和管理功能。它可以在企业环境中搭建私有仓库,并提供可信度、多租户支持、定制性等特点。

官网:https://goharbor.io/

GitHub:https://github.com/goharbor/harbor

Harbor旨在提供企业级的镜像管理解决方案,具有以下特点和功能:

安全性:

Harbor提供了一套丰富的安全性功能,包括用户身份验证和授权、镜像签名验证、访问控制、漏洞扫描等。这可以帮助你保护你的镜像免受恶意攻击和漏洞利用。

可信度:

Harbor支持对镜像进行数字签名和验证,确保其完整性和来源可信。你可以使用自定义或第三方证书来签名和验证镜像的真实性。

多租户支持:

Harbor支持多个项目和多个仓库,可以根据不同的组织、团队或项目来进行分组和管理。每个项目都可以有自己的用户权限和访问控制策略。

可定制性:

Harbor提供了灵活的配置选项和扩展机制,可以根据你的需求进行自定义设置。你可以调整存储、网络和认证等配置,以适应不同的环境和需求。

高性能:

Harbor使用了缓存和复制策略来提高镜像的访问速度和可用性。它支持多个镜像存储后端,包括本地存储、S3存储等。

用户友好的界面:

Harbor提供了直观且易于使用的Web界面,可以方便地管理镜像、项目、用户和访问权限等。

安装Harbor

下载Harbor的二进制文件进行安装,Harbor安装与配置参考:https://goharbor.io/docs/2.9.0/install-config/

下载离线安装包

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

解压安装包

tar -zxvf harbor-offline-installer-v2.7.3.tgz
[root@master harbor]# ls
common.sh  harbor.v2.7.3.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare

进入Harbor目录

cd harbor

配置 Harbor

cp harbor.yml.tmpl  harbor.yml

vim harbor.yml

# 当前节点主机名或IP
hostname: 112.74.96.150

# http端口配置
http:
  port: 8080

# 这里不使用https,注释该配置
#https:
  # https port for harbor, default is 443
#  port: 443
  # The path of cert and key files for nginx
#  certificate: /your/certificate/path
#  private_key: /your/private/key/path  

# Harbor UI的初始密码  
harbor_admin_password: Harbor12345

# The default data volume
data_volume: /usr/local/program/harbor/data

运行安装程序脚本

当配置harbor.yml完成后,可以使用install.sh脚本安装并启动 Harbor

./install.sh

安装成功,将输出如下日志:

[Step 5]: starting Harbor ...
[+] Running 10/10
 ✔ Network harbor_harbor        Created                                                                                                                                                0.1s
 ✔ Container harbor-log         Started                                                                                                                                                0.1s
 ✔ Container registryctl        Started                                                                                                                                                0.2s
 ✔ Container harbor-db          Started                                                                                                                                                0.1s
 ✔ Container redis              Started                                                                                                                                                0.1s
 ✔ Container registry           Started                                                                                                                                                0.1s
 ✔ Container harbor-portal      Started                                                                                                                                                0.2s
 ✔ Container harbor-core        Started                                                                                                                                                0.1s
 ✔ Container harbor-jobservice  Started                                                                                                                                                0.1s
 ✔ Container nginx              Started                                                                                                                                                0.1s
✔ ----Harbor has been installed and started successfully.----

查看docker镜像,将出现与hardor相关的的镜像列表


[root@master harbor]# docker ps
CONTAINER ID   IMAGE                                COMMAND                  CREATED              STATUS                        PORTS                       NAMES
62343618f630   goharbor/nginx-photon:v2.7.3         "nginx -g 'daemon of…"   About a minute ago   Up About a minute (healthy)   0.0.0.0:8080->8080/tcp      nginx
a39ecd6eddf1   goharbor/harbor-jobservice:v2.7.3    "/harbor/entrypoint.…"   About a minute ago   Up About a minute (healthy)                               harbor-jobservice
f0c1a4957d04   goharbor/harbor-core:v2.7.3          "/harbor/entrypoint.…"   About a minute ago   Up About a minute (healthy)                               harbor-core
f64062148ccf   goharbor/harbor-registryctl:v2.7.3   "/home/harbor/start.…"   About a minute ago   Up About a minute (healthy)                               registryctl
6fc3d92cc65f   goharbor/harbor-db:v2.7.3            "/docker-entrypoint.…"   About a minute ago   Up About a minute (healthy)                               harbor-db
fc9917cad78e   goharbor/harbor-portal:v2.7.3        "nginx -g 'daemon of…"   About a minute ago   Up About a minute (healthy)                               harbor-portal
8622fab2670f   goharbor/registry-photon:v2.7.3      "/home/harbor/entryp…"   About a minute ago   Up About a minute (healthy)                               registry
27e3ba43f9f8   goharbor/redis-photon:v2.7.3         "redis-server /etc/r…"   About a minute ago   Up About a minute (healthy)                               redis
feef079dcbd4   goharbor/harbor-log:v2.7.3           "/bin/sh -c /usr/loc…"   About a minute ago   Up About a minute (healthy)   127.0.0.1:1514->10514/tcp   harbor-log

登录

浏览器访问 http://IP:8080
在这里插入图片描述
使用用户名:admin、配置的密码:Harbor12345进行登录
在这里插入图片描述

启动与停止Harbor

停止Harbor

[root@master harbor]# docker-compose stop
[+] Running 9/9
 ⠿ Container harbor-jobservice  Stopped                                                                                                                                                0.0s
 ⠿ Container nginx              Stopped                                                                                                                                                0.0s
 ⠿ Container registryctl        Stopped                                                                                                                                               10.2s
 ⠿ Container harbor-portal      Stopped                                                                                                                                                0.3s
 ⠿ Container harbor-core        Stopped                                                                                                                                                0.0s
 ⠿ Container harbor-db          Stopped                                                                                                                                                0.4s
 ⠿ Container registry           Stopped                                                                                                                                                0.2s
 ⠿ Container redis              Stopped                                                                                                                                                0.5s
 ⠿ Container harbor-log         Stopped                                                                                                                                               10.2s

启动Harbor

[root@master harbor]# docker-compose start
[+] Running 9/9
 ⠿ Container harbor-log         Started                                                                                                                                                0.3s
 ⠿ Container redis              Started                                                                                                                                                0.9s
 ⠿ Container registryctl        Started                                                                                                                                                0.7s
 ⠿ Container harbor-portal      Started                                                                                                                                                1.0s
 ⠿ Container harbor-db          Started                                                                                                                                                0.8s
 ⠿ Container registry           Started                                                                                                                                                1.0s
 ⠿ Container harbor-core        Started                                                                                                                                                0.3s
 ⠿ Container nginx              Started                                                                                                                                                0.5s
 ⠿ Container harbor-jobservice  Started 

登录Harbor仓库

要登录到Harbor私有仓库,执行以下命令来登录到Harbor仓库:

docker login <Harbor仓库地址>

登录异常

[root@master harbor]# docker login 112.74.96.150:8080
Username: admin
Password:
Error response from daemon: Get "https://112.74.96.150:8080/v2/": http: server gave HTTP response to HTTPS client

原因:

默认通过 HTTPS 协议与 Harbor 仓库进行通信,但是 Harbor 仓库只配置了 HTTP 服务而没有启用 HTTPS 服务。

解决方案

方案一:

查找docker.service所在目录

[root@master harbor]# find / -name docker.service -type f
/usr/lib/systemd/system/docker.service

编辑 vim /usr/lib/systemd/system/docker.service

修改这行配置:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

使用--insecure选项来跳过https证书验证,改成如下这样:

ExecStart=/usr/bin/dockerd --insecure-registry 112.74.96.150:8080  -H fd:// --containerd=/run/containerd/containerd.sock

方案二:

修改/etc/docker/daemon.json文件,添加配置,指定镜像仓库IP地址

{
	"insecure-registries": ["112.74.96.150"]
}

登录

重新加载配置、重启docker

systemctl daemon-reload
systemctl restart docker

再次登录

注意:可能需要重启Harbor

[root@master harbor]# docker login 112.74.96.150:8080
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

退出

退出Harbor私有仓库的登录状态

docker logout <Harbor仓库地址>
[root@master ~]# docker login 112.74.96.150:8080
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

推送拉取Harbor镜像

镜像命名规范

Harbor的镜像名称,存在一定命名规范,差异之处在于:必须以项目名称作为镜像名称的一部分,具体参考如下示例说明

构建镜像

docker build -t <Harbor仓库地址>/<项目名称>/<镜像名称>:<标签> .

将镜像推送到Harbor仓库

docker push <Harbor仓库地址>/<项目名称>/<镜像名称>:<标签>

拉取Harbor镜像

docker pull <Harbor仓库地址>/<项目名称>/<镜像名称>:<标签>

创建项目

在Harbor仓库的界面或使用Harbor API来创建项目

界面创建
在这里插入图片描述
Harbor API创建

curl -X POST -u username:password -H "Content-Type: application/json" -d '{
  "project_name": "projectname",
  "public": 1,
  "content_trust": "disabled"
}' https://<Harbor仓库地址>/api/projects

推送镜像

拉取一个测试镜像

[root@master ~]# docker pull testcontainers/helloworld

查看该镜像

[root@master ~]# docker images | grep hello
testcontainers/helloworld       latest       6974669be52b   2 years ago     12.7MB

标记本地镜像, 将其归入Harbor仓库

注意:需要多一级,作为项目名

[root@master harbor]# docker tag testcontainers/helloworld:latest 112.74.96.150:8080/projectname/helloworld:v1

再次查看镜像

[root@master harbor]# docker images | grep hello
112.74.96.150:8080/projectname/helloworld   v1           6974669be52b   2 years ago     12.7MB
testcontainers/helloworld                   latest       6974669be52b   2 years ago     12.7MB

将本地镜像推送到镜像仓库(需先登录镜像仓库)

[root@master harbor]# docker push  112.74.96.150:8080/projectname/helloworld:v1
The push refers to repository [112.74.96.150:8080/projectname/helloworld]
802cca11a560: Pushing [============================================>      ]  6.194MB/7.019MB
80b7fe966245: Pushed
50644c29ef5a: Pushing [=============================================>     ]  5.068MB/5.575MB

登录Harbor,查看新建项目projectname下,已成功推送1个镜像

在这里插入图片描述

拉取镜像

删除已存在镜像

[root@master harbor]# docker images | grep hello
112.74.96.150:8080/projectname/helloworld   v1           6974669be52b   2 years ago     12.7MB
testcontainers/helloworld                   latest       6974669be52b   2 years ago     12.7MB

[root@master harbor]# docker rmi 112.74.96.150:8080/projectname/helloworld:v1
Untagged: 112.74.96.150:8080/projectname/helloworld:v1
Untagged: 112.74.96.150:8080/projectname/helloworld@sha256:4ee5a832ef6eee533df7224b80d4cceb9ab219599014f408d0b69690be94c396

[root@master harbor]# docker rmi testcontainers/helloworld:latest
Untagged: testcontainers/helloworld:latest
Untagged: testcontainers/helloworld@sha256:4ee5a832ef6eee533df7224b80d4cceb9ab219599014f408d0b69690be94c396

从Harbor拉取镜像

[root@master harbor]# docker pull 112.74.96.150:8080/projectname/helloworld:v1
v1: Pulling from projectname/helloworld
df20fa9351a1: Downloading [==========>                                        ]  614.1kB/2.798MB
7d694ce25b07: Download complete
99f5116afda5: Downloading [================================>                  ]  
2.389MB/3.655MB

查看拉取的镜像

[root@master harbor]# docker images | grep hell
112.74.96.150:8080/projectname/helloworld   v1           6974669be52b   2 years ago     12.7MB

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

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

相关文章

零售超市如何应对消费者需求?非常全面!

随着科技的飞速发展和消费者期望的不断演变&#xff0c;零售行业正经历着一场深刻的革命。传统零售模式逐渐被新零售模式所取代&#xff0c;而其中一个备受关注的元素是自动售货机。 自动售货机不仅在商场、车站和办公楼等高流量地点迅速扩张&#xff0c;还在重新定义我们如何购…

日志平台搭建第七章:Linux安装kafka-manager

相关链接https://github.com/yahoo/kafka-manager/releases kafka-manager-2.0.0.2下载地址 百度云链接&#xff1a;https://pan.baidu.com/s/1XinGcwpXU9YBF46qkrKS_A 提取码&#xff1a;tzvg 一、安装部署 1.把kafka-manager-2.0.0.2.zip拷贝到目录 /opt/app/elk 2.解压…

VSD Viewer 6.16.1(Visio绘图文件阅读器)

VSD Viewer是一款用于查看和打开Microsoft Visio文件的应用程序。Visio是一种流程图和图表设计工具&#xff0c;常用于创建各种类型的图形和图表&#xff0c;如组织结构图、流程图、网络拓扑图等。 VSD Viewer允许用户在没有安装Visio软件的情况下浏览和查看Visio文件。它提供…

变频器频率传感器信号转电压或电流信号隔离变送器0-1KHz / 0-5KHz / 0-10KHz转0-5V/0-10V/0-10mA/4-20mA

主要特性 精度等级&#xff1a;0.2 级全量程内极高的线性度&#xff08;非线性度<0.1%&#xff09;辅助电源/信号输入/信号输出&#xff1a; 2500VDC 三隔离辅助电源&#xff1a;5VDC&#xff0c;12VDC&#xff0c;24VDC 等单电源供电输入频率信号&#xff1a;0-1KHz / 0-5…

openGauss学习笔记-69 openGauss 数据库管理-创建和管理普通表-更新表中数据

文章目录 openGauss学习笔记-69 openGauss 数据库管理-创建和管理普通表-更新表中数据 openGauss学习笔记-69 openGauss 数据库管理-创建和管理普通表-更新表中数据 修改已经存储在数据库中数据的行为叫做更新。用户可以更新单独一行、所有行或者指定的部分行。还可以独立更新…

C++(Qt)软件调试---GCC编译参数学习-程序检测(13)

C(Qt)软件调试—GCC编译参数学习-程序检测&#xff08;13&#xff09; 文章目录 C(Qt)软件调试---GCC编译参数学习-程序检测&#xff08;13&#xff09;1、前言1.1 概述1.2 测试环境 2、GCC编译警告选项1.1 编译警告的作用1.2 GCC常用的编译警告选项 3、GCC程序检测选项1.1 性能…

解决Agora声网音视频在后台没有声音的问题

前言:本文会介绍 Android 与 iOS 两个平台的处理方式 一、Android高版本在应用退到后台时,系统为了省电会限制应用的后台活动,因此我们需要开启一个前台服务,在前台服务中发送常驻任务栏通知,以此来保证App 退到后台时不会被限制活动. 前台服务代码如下: package com.notify…

在ubuntu安装vncserver,可以打开远程桌面

1.网上查找vncserver的资料 2.在ubuntu20.04上面使用 https://www.5axxw.com/questions/simple/ywnpl5 参考了这个和其他很多 我直接运行vncserver&#xff0c;没有成功&#xff01; 当我使用这个命令时 xtigervncviewer -SecurityTypes VncAuth -passwd /home/yx/.vnc/passw…

构建高效的接口自动化测试框架思路

在选择接口测试自动化框架时&#xff0c;需要根据团队的技术栈和项目需求来综合考虑。对于测试团队来说&#xff0c;使用Python相关的测试框架更为便捷。无论选择哪种框架&#xff0c;重要的是确保 框架功能完备&#xff0c;易于维护和扩展&#xff0c;提高测试效率和准确性。今…

Biome-BGC生态系统模型与Python融合技术教程

详情点击公众号链接&#xff1a;Biome-BGC生态系统模型与Python融合技术教程 前言 Biome-BGC是利用站点描述数据、气象数据和植被生理生态参数&#xff0c;模拟日尺度碳、水和氮通量的有效模型&#xff0c;其研究的空间尺度可以从点尺度扩展到陆地生态系统。 在Biome-BGC模型…

crm、scrm、ocrm、acrm、ccrm等等分别是什么?有什么区别?

crm、SCRM、OCRM、ACRM、CCRM等等分别是什么&#xff1f;crm&#xff0c;scrm&#xff0c;ocrm&#xff0c;acrm&#xff0c;ccrm有什么区别&#xff1f;又有什么联系&#xff1f;这些系统各自之间都有哪些优势和缺点呢&#xff1f;今天将带领大家深入浅出的系统了解crm&#x…

idea 创建java web项目 run后出现404现象

1、创建新项目 创建的新项目只是单纯的java项目&#xff0c;如图 2、添加lib库文件&#xff0c;里面存放jar包&#xff0c;并导入库配置 这里要注意&#xff0c;需要先添加lib库文件再去配置模块和工件否则会出现404现象 3、打开模块设置&#xff0c;设置项目配置 将本…

c语言练习58:⾃定义类型:结构体

⾃定义类型&#xff1a;结构体 结构体的概念 结构是⼀些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量。 结构体是一个种自定义的数据类型&#xff0c;它可以由很多个默认数据类型组成。它主要用于描述复杂场景下的变量。 例如&#xff0c;想…

go语言基础--杂谈

常量运行期间&#xff0c;不可以改变的值 const PI float64 3.14字面常量 所谓字面常量&#xff0c;是值程序中硬编码的常量 123 //整型类型常量 156.78 //浮点类型的常量 true //布尔类型的常量 “abc”//字符串类型的常量//const PI float64 3.14 const PI 3.14 // //P…

在Kubernetes集群中部署 dolphindcheduler-3.1.8

温故知新 &#x1f4da;第一章 前言&#x1f4d7;背景&#x1f4d7;目的&#x1f4d7;总体方向 &#x1f4da;第二章 部署&#x1f4d7;安装helm&#x1f4d7;安装dolphindcheduler&#xff08;使用k8s的部署用户操作&#xff09;&#x1f4d5;通过命令验证&#x1f4d5;通过Ku…

OpenCV(四十二):Harris角点检测

1.Harris角点介绍 什么是角点&#xff1f; 角点指的是两条边的交点&#xff0c;图中红色圈起来的点就是角点。 Harris角点检测原理&#xff1a;首先定义一个矩形区域&#xff0c;然后将这个矩形区域放置在我的图像中&#xff0c;求取这个区域内所有的像素值之和&#xff0c;之…

【C语言】每日一题(半月斩)——day2

目录 一.选择题 1、以下程序段的输出结果是( ) 2、若有以下程序&#xff0c;则运行后的输出结果是&#xff08; &#xff09; 3、如下函数的 f(1) 的值为&#xff08; &#xff09; 4、下面3段程序代码的效果一样吗( ) 5、对于下面的说法&#xff0c;正确的是&#xf…

2024CFA一级notes百度网盘下载

024CFA一级notes百度网盘下载 2024CFA一级notes2024年CFA考纲已经正式发布&#xff0c;相比与老考纲&#xff0c;新考纲变化实在不算小。 面对2024年CFA新考纲的变化&#xff0c;我们在第一时间对2024年考试的新趋势和新变化&#xff0c;进行深度解读。具体总结如下&#xff…

ddtrace 系列篇之 dd-trace-java 项目编译

dd-trace-java 是 Datadog 开源的 java APM 框架&#xff0c;本文主要讲解如何编译 dd-trace-java 项目。 环境准备 JDK 编译环境(三个都要&#xff1a;jdk8\jdk11\jdk17) Gradle 8 Maven 3.9 (需要 15G 以上的存储空间存放依赖) Git >2 (低于会出现一想不到的异常&#xf…

短视频搭建矩阵源码--短视频矩阵源码搭建

短视频矩阵系统是一种通过将短视频内容进行分类、管理和展示的系统。它可以将用户上传或者选择的短视频按照不同的特定标签进行分类和管理&#xff0c;用户可以根据自己的兴趣和需求选择观看不同类别的短视频。 短视频矩阵源码的开发部署其实并不难&#xff0c;主要依托于抖音平…