harbor搭建

news/2024/10/2 10:34:48

1.Harbor简介

Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
  • 基于角色的访问控制 - 用户与 Docker 镜像仓库通过 “项目” 进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
  • 镜像复制 - 镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
  • 图形化用户界面 - 用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。
  • AD/LDAP 支持 - Harbor 可以集成企业内部已有的 AD/LDAP,用于鉴权认证管理。
  • 审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  • 国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
  • RESTful API - RESTful API 提供给管理员对于 Harbor 更多的操控,使得与其它管理软件集成变得更容易。
  • 部署简单 - 提供在线和离线两种安装工具, 也可以安装到 vSphere 平台 (OVA 方式) 虚拟设备

2.Harbor搭建

安装说明: Harbor的所有服务组件都是在Docker中部署的,所以官方安装使用Docker-compose快速部署,所以需要安装 Docker、Docker-compose。由于Harbor是基于Docker Registry V2版本,所以就要求Docker版本不小于1.10.0, Docker-compose版本不小于1.6.0。
访问方式:https
安装路径:/opt/software/harbor
挂载路径:/home/harbor_data/
https访问证书路径:/opt/software/harbor_certs/

① 下载并解压安装包

在线下载:
wget https://github.com/goharbor/harbor/releases/download/v2.7.2/harbor-online-installer-v2.7.2.tgz
tar -xvf harbor-online-installer-v2.7.2.tgz
 
 
离线安装(推荐):
先到 Release v2.7.2 · goharbor/harbor · GitHub 下载harbor-online-installer-v2.7.2.tgz安装包,然后解压安装。

② 生成CA证书

  1. 生成文件夹/opt/software/harbor_certs用于存放证书;
  2. 创建key文件
cd /opt/software/harbor_certs
openssl genrsa -out ca.keifconfigy 4096
  1. 生成证书,生成ca.crt和ca.key
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=58.210.96.146" \
 -key ca.key \
 -out ca.crt
 

③ 生成服务器证书

  1. 创建私钥
openssl genrsa -out server.key 4096
  1. 生成证书签名请求
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.96.146" \
    -key server.key \
    -out server.csr
 

④ 生成harbor仓库主机证书

  1. 创建一个 v3.ext 文件
sudo vim v3.ext
写入以下内容:
 authorityKeyIdentifier=keyid,issuer
 basicConstraints=CA:FALSE
 keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
 extendedKeyUsage = serverAuth 
 subjectAltName = IP:192.168.96.146
 
  1. 生成harbor仓库主机证书
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in server.csr \
    -out server.crt
 
 

⑤ 编辑配置文件

进入解压后的harbor文件夹
cp harbor.yml.tmpl harbor.yml  # 复制一份harbor.yml文件
vim harbor.yml
 
 

https方式:

编辑:
  • hostname改为本机ip(192.168.96.146)
  • 修改为其他指定端口(58087)
  • 向harbor提供证书
  • 修改如下图红框中内容

 

http方式(不推荐,因为需要重启docker):

编辑:
  • hostname改为本机ip(10.0.1.3)
  • 修改为其他指定端口(8087)
  • 修改如下图红框中内容
  • 修改/etc/docker/daemon.json,给insecure-registries中添加”10.0.1.3:8087“
  • 然后执行systemctl daemon-reload 和 systemctl restart docker
image.png
 
 

⑥ 准备安装环境

./prepare  # 执行prepare脚本
 
 
执行完成后,本地生成一个docker-compose.yml文件和common目录;

https方式:

注意!!!:由于在harbor.yml中修改的指定端口是外网的58087,所以在执行./prepare的时候,生成的docker-compose.yml的文件中的端口映射为58087:8443,需要把外网端口58087改成内网端口8087,如下图:
1696734836733.png
 
 

http方式:

注意docker-compose.yml文件端口如下:
image.png
 
 

⑦ 安装harbor(只需要安装时执行)

./install.sh  # 安装harbor
 
安装过程中会自动下载harbor镜像并启动相关容器。
harbor.yml文件中可查看或修改密码
image.png
 
 

⑧ 启动harbor

cd /opt/software/harbor
sudo docker-compose -f docker-compose.yml up -d
 
 

使用harbor

1. 访问harbor

网页访问:https://192.168.96.146:58087
默认管理员账号和密码为:admin  Harbor12345

2. 向docker提供证书

将server.crt和ca.crt复制到docker所在的机器固定目录中

1. 创建文件夹
    cd /etc/docker/certs.d
    sudo mkdir 192.168.96.146:58087
2. 复制文件
    sudo cp server.crt /etc/docker/certs.d/192.168.96.146:58087/
    sudo cp ca.crt /etc/docker/certs.d/192.168.96.146:58087/

登录
docker login 192.168.96.146:58087
 

3. 上传镜像

打tag推送镜像到harbor
 
docker tag detection_webserver:0.4.2 192.168.96.146:58087/detection/detection_webserver:0.4.2
docker push 192.168.96.146:58087/detection/detection_webserver:0.4.2
 

4. 拉取镜像

docker pull 192.168.96.146:58087/detection/detection_webserver:0.4.2
 
 

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

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

相关文章

关于phpStudy中的phpmyadmin打不开的原因

今天我在配置软件杯的第10道赛题的环境变量的时候,教程显示要打开phpmyadmin,但是我的一直打不开出现以下情况 这是因为WNMP没有启动,只要将他启动就可以正常打开了

linux清理缓存

当cache缓存占用太大,服务起不来,需要查看清理缓存 执行free -m或者free -h,查看缓存释放缓存区内存的方法(请注意,以下操作需要root权限) 建议在清理缓存之前先备份重要数据,以免发生意外情况。 1、清理磁盘缓存 刷新文件系统缓存,将缓存中的数据写入磁盘。 sync 清理页…

Qt - 多线程之线程的开始暂停恢复停止

示例1 在Qt中,可以使用QThread的线程控制功能来暂停和恢复一个线程。这里是一个简单的例子: #include <QThread> #include <QDebug>class WorkerThread : public QThread {void run() override {qDebug() << "Thread is running";// 执行一些任务…

国思RDIF.vNext全新低代码快速开发框架平台6.1版本发布(支持vue2、vue3)

RDIF.vNext全新低代码快速开发框架平台6.1版本发布(支持vue2、vue3)。全新设计,全新开发,代码量减少70%,运行的速度也得到了质的提升,基于.NET6+全新开发,前后端分离,支持Web、App、客户端、微信等,适配各种行业和场景需求。想做各种软件,用RDIF框架都好办!1、平台介…

tomato

21,80,2211,88888 爆破目录 访问 http://192.168.52.129/antibot_image/ 发现存在目录 antibots,接着访问该目录,发现存在很多文件 访问 http://192.168.52.129/antibot_image/antibots/info.php,找到 phpinfo 的信息,F12查看源码发现 hint,存在文件包含漏洞 前面信息搜…

恒隆云上配置One-2-3-45

前ICPC算法竞赛退役选手|现摸鱼ing

OceanBase主机CPU超过85% SQL性能急剧下降案例

之前在培训的时候,OceanBase的老师就说过,当主机CPU使用率超过85%之后,SQL的就会急剧下降。最近分析问题的时候刚好碰到相关案例,简单记录下 ocp记录的主机CPU相关信息如下问题SQL的执行情况: 从下面的SQL执行情况可以看到,在6-1号的时候问题SQL在下午六点半开始执行,平…

HTTP1.x HTTP2 HTTP3 的简单对比

协议 简要描述 比喻HTTP1.0 短连接,一次数据通信,结束后就断开 一次性道路,简单暴力通过。HTTP1.1 长连接,连接可以被复用,但需要按照资源顺序复用。 单向单车道,婚礼车队,不能逆序。HTTP2 连接复用,增加了http头部压缩和帧传输,连接可以被异步服用,服务器端可以主动…