企业级镜像仓库Harbor的部署及使用

2023-11-01

一、环境准备

CentOS 7.6 Minimal 192.168.73.135

Docker 20.10.12 Docker安装教程

Docker Compose v2.2.2 Docker Compose安装教程

Openssl (CentOS系统自带)

二、下载

下载地址

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

解压

# 解压
tar -xvf harbor-offline-installer-v2.4.1.tgz
# 移动到安装目录
mv harbor /usr/local/harbor

三、HTTPS证书

CentOS服务器进行如下操作,我这里使用域名harbor.rkyao.com访问,生成证书命令里的域名替换成这个

1、生成证书颁发机构证书

在生产环境中,您应该从 CA 获得证书。在测试或开发环境中,您可以生成自己的 CA。要生成 CA 证书,请运行以下命令。

  1. 生成 CA 证书私钥
openssl genrsa -out ca.key 4096
  1. 生成CA证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.rkyao.com" \
-key ca.key \
-out ca.crt
2、生成服务器证书

证书通常包含一个.crt文件和一个.key文件

  1. 生成私钥
openssl genrsa -out harbor.rkyao.com.key 4096
  1. 生成证书签名请求(CSR)
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.rkyao.com" \
-key harbor.rkyao.com.key \
-out harbor.rkyao.com.csr
  1. 生成一个x509 v3扩展文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=harbor.rkyao.com
DNS.2=harbor.rkyao.com
DNS.3=harbor.rkyao.com
EOF
  1. 使用该v3.ext文件为您的Harbor主机生成证书
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in harbor.rkyao.com.csr \
-out harbor.rkyao.com.crt
3、提供证书给Harbor和Docker

生成后ca.crtharbor.rkyao.com.crtharbor.rkyao.com.key文件,必须将它们提供给HarborDocker,并重新配置Harbor以使用它们。

  1. 将服务器证书和密钥复制到Harbor主机上的/data/cert/文件夹中
mkdir -p /data/cert/
cp harbor.rkyao.com.crt /data/cert/
cp harbor.rkyao.com.key /data/cert/
  1. 转换harbor.rkyao.com.crtharbor.rkyao.com.cert,供Docker使用,Docker守护进程将.crt文件解释为CA证书,将.cert文件解释为客户端证书。
openssl x509 -inform PEM -in harbor.rkyao.com.crt -out harbor.rkyao.com.cert
  1. 将服务器证书、密钥和CA文件复制到Harbor主机上的Docker证书文件夹中,您必须先创建适当的文件夹。
mkdir -p /etc/docker/certs.d/harbor.rkyao.com/
cp harbor.rkyao.com.cert /etc/docker/certs.d/harbor.rkyao.com/
cp harbor.rkyao.com.key /etc/docker/certs.d/harbor.rkyao.com/
cp ca.crt /etc/docker/certs.d/harbor.rkyao.com/

证书文件夹的目录结构

/etc/docker/certs.d/
└── harbor.rkyao.com
    ├── ca.crt
    ├── harbor.rkyao.com.cert
    └── harbor.rkyao.com.key
  1. 重启Docker
systemctl restart docker

四、Harbor配置文件

# 切换到安装目录
cd /usr/local/harbor
# harbor.yml为配置文件,默认不存在,需从harbor.yml.tmpl复制出一个出来
cp harbor.yml.tmpl harbor.yml
# 打开文件
vi harbor.yml
# 修改如下配置
hostname: harbor.rkyao.com
certificate: /data/cert/harbor.rkyao.com.crt
private_key: /data/cert/harbor.rkyao.com.key
external_url: https://harbor.rkyao.com

五、安装

# 切换到安装目录
cd /usr/local/harbor
# 执行安装脚本
sh install.sh

六、Web页面

本地win系统配置hosts

192.168.73.135 harbor.rkyao.com

浏览器访问 https://harbor.rkyao.com 即可打开Web管理界面,用户名密码为 admin/Harbor12345

七、上传及拉取镜像

在另一台Linux服务器上面进行测试

1、配置

配置hosts

vi /etc/hosts
# 添加如下内容
192.168.73.135 harbor.rkyao.com

Docker的配置文件的目录添加服务器证书

# 创建目录
mkdir -p /etc/docker/certs.d/harbor.rkyao.com/
# 该目录下添加三个证书文件ca.crt、harbor.rkyao.com.cert、harbor.rkyao.com.key,从安装Harbor的机器上 /etc/docker/certs.d/harbor.rkyao.com 目录下copy过来,参见上面 三、3、3)节
2、上传镜像

通过Web界面创建一个项目rkyao,先创建了才能上传镜像
请添加图片描述
上传镜像

# 登录 用户名密码 admin/Harbor12345
docker login --username=admin harbor.rkyao.com
# 给本地镜像打tag,命令格式如下
docker tag [ImageId] [harbor域名]/[项目名]/[REPOSITORY]:[TAG]
eg: docker tag 57c4d3c46810 harbor.rkyao.com/rkyao/eureka-server:1.0.0

# 上传镜像
docker push [harbor域名]/[项目名]/[REPOSITORY]:[TAG]
eg: docker push harbor.rkyao.com/rkyao/eureka-server:1.0.0

Web页面上查看,有刚才上传的镜像说明上传成功
请添加图片描述

3、拉取镜像

拉取命令格式如下

docker pull [harbor域名]/[项目名]/[REPOSITORY]:[TAG]
eg: docker pull harbor.rkyao.com/rkyao/eureka-server:1.0.0

查看本地镜像,拉取成功

请添加图片描述

八、参考文档

https://goharbor.io/docs/2.5.0/install-config/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

企业级镜像仓库Harbor的部署及使用 的相关文章

随机推荐

  • JNI基本使用

    编译运行 首先介绍一些编写JNI的大致流程 可以直接调过这部分 生成头文件 这步可以不做 但是JNI对C C 函数的命名有严格要求 同时函数的命名会很长 所以还是直接生成头文件 然后从头文件里边复制函数声明 使用下面的命令生成头文件 记得代
  • SourceTree提交合并流程

    先写提交流程 缓存 提交 获取 拉取 解决冲突 提交 推送 下面和多分支开发合并 先保证 拉取到最新的 把项目切到主分支 鼠标点到被合并分支 右击选中 合并 到当前分支
  • ARM9/13——用C语言实现LED1/LED2/LED3灯点亮

    目录 代码 gpio h gpio c main c 运行效果 代码 gpio h ifndef GPIO H define GPIO H 1 RCC寄存器封装 用宏定义进行封装 define RCC AHB4 ENSETR volatil
  • 【Unity3D自学记录】Unity3D之KeyCode键值

    Backspace 退格键 Delete Delete键 TabTab键 Clear Clear键 Return 回车键 Pause 暂停键 Escape ESC键 Space 空格键 Keypad0 小键盘0 Keypad1 小键盘1 K
  • 为什么要在C ++ 11中使用“override”说明符?

    如果您知道Java 那么您可能已经很熟悉Java了 这对您来说可能是完全简单的 Override annotation 如果您一直使用C C 进行编码 那么这可能是新的 您可能会问自己一个问题 为什么在不必要的时候为什么要放一个额外的说明符
  • 数独基本规则_数独入门:你必须掌握的那些规则和技巧

    很多人想涉足数独领域 但苦于不知该如何入门和上手 甭愁了 北京市数独运动协会贴心地为菜鸟们总结了这一篇数独的元素 规则和技巧 满满的都是干货 如果你看完还觉得不够过瘾 那就移步至数独女王的达人攻略 接受高阶的训练和挑战吧 数独的规则 在空格
  • 获取OpenHarmony源码:从DevEco Marketplace获取(2)

    引言 OpenHarmony源码的获取方式有三种 从gitee GitHub等基于git的代码托管平台获取 从华为的DevEco Marketplace网站获取 从镜像站点获取 本文介绍如何在Ubuntu版本的DevEco Device T
  • 大数据知识目录

    第一阶段 安装虚拟机 第二阶段 Linux操作系统 第三阶段 zookeeper分布式协调服务框架 第四阶段 Hadoop分布式文件系统HDFS 第五阶段 Hadoop分布式计算Mapreduce和资源管理 第六阶段 数据仓库Hive 第七
  • 对于uts namespace共享的测试

    前言 单单以下列命令运行虽然是root 还不行 我们需要加 privileged 不然会报 hostname you must be root to change the host name docker run it uts host u
  • python写程序计算无穷级数_圆周率 π 展开 为 无穷级数

    圆周率 展开 为 无穷级数 其实 很简单 如图 可以用 黄色小三角形 和 橙色小三角形 以及 依此类推 下去 的 无数个 小三角形 来 逼近 圆面积 把 这个 无限逼近 的 圆面积 称为 S 因为 圆面积 r 所以 有 S r S r 即
  • 【VC++类型转换】CString和System::String类型的转换

    1 CString 转换为System String类型 这里的CString是指MFC的CString System String为CLR中的字符串类 我认为最简单的做法是 CString text System String str1
  • 【HBZ分享】Mysql的InnoDB原理

    没有配置主键时Mysql的InnoDB是如何做的 Mysql会使用自带的rowid作为主键 InnoDB的底层数据结构是什么 B Tree BTree的特点 MyISAM 非聚集索引 即 索引 和 对应数据 是分开的两个文件 找到对应数据后
  • 两年来主要工作框架图

    两年来主要工作框架图 包含了从MES到SAP的全程流程 从收集一线数据开始到汇总历史数据 归档 直到最后的BI DW分析展现 主要工作流程图
  • Java中正则表达式的使用

    在Java中 我们为了查找某个给定字符串中是否有需要查找的某个字符或者子字串 或者对字符串进行分割 或者对字符串一些字符进行替换 删除 一般会通过if else for 的配合使用来实现这些功能 如下所示 Java代码 public cla
  • 以互联网思维做好客户端软件

    加入爱奇艺的时间不长 但我感受到的震撼却不小 在外企打拼了十几个春秋 今年终于有机会进入一家国内顶尖的互联网企业 真真切切地有一番不太一样的体验 不过 我今天并不想说在外企工作与国内企业的差别 目前 我负责 爱奇艺PPS影音 PC客户端软件
  • 2种方法简单爬取JS加载的动态数据

    参考原文 http www cnblogs com buzhizhitong p 5697683 html 需要爬取的网站数据 http gkcx eol cn soudaxue queryProvince html page 1 一共是1
  • webdriver相关API

    webdriver相关API 一 元素的定位 二 操作测试对象 三 添加等待 四 打印信息 五 浏览器的操作 六 键盘事件 七 鼠标事件 一 元素的定位 webdriver提供的常用的对象定位方法 id 页面内 id 唯一 name cla
  • vector C++ 详细用法

    原文地址 http blog csdn net edify article details 4035243 vector是C 标准模板库中的部分内容 它是一个多功能的 能够操作多种数据结构和算法的模板类和函数库 vector之所以被认为是一
  • 压测注意事项

    文章目录 常用术语 流程及注意事项 常用工具 ab 命令 Jmeter 声明这里只是面向RD的 简单的 为摸清服务性能相关的自压测笔记 正规压测请向QA同学请教 常用术语 QPS 每秒请求数 也是吞吐量 内存使用情况 CPU使用情况 针对计
  • 企业级镜像仓库Harbor的部署及使用

    文章目录 一 环境准备 二 下载 三 HTTPS证书 1 生成证书颁发机构证书 2 生成服务器证书 3 提供证书给Harbor和Docker 四 Harbor配置文件 五 安装 六 Web页面 七 上传及拉取镜像 1 配置 2 上传镜像 3