Harbor 仓库部署(docker-compose 部署方式)

一、 安装的前提条件

硬件

资源

最低

推荐

cpu2C4C
内存4G8G
硬盘40G160G

软件

软件

版本

描述

dockerv17.0.6-ce+

安装参考官方文档

Install Docker Engine | Docker Documentation

docker-composev1.18.0+

安装参考官方文档

Overview | Docker Documentation

Openssllatest用于为harbor生成证书和密钥

二、安装配置

生成harbor自签证书和密钥

docker 在docker login 时默认使用 https 的方式连接到镜像仓库,修改docker连接方式需要重启docker,生产环境不允许,所以要提前为harbor 准备证书和密钥。

1.生成 CA 证书私钥

$ openssl genrsa -out ca.key 1024

2.生成 CA 证书

$ openssl req -x509 -new -nodes -sha512 -days 3650  -subj "/C=US/ST=TestState/L=TestCity/O=TestOrg/OU=TestOU/CN=Test"  -key ca.key  -out ca.crt

3.生成私钥

$ openssl genrsa -out test.harbor.com.key 1024

4.生成证书签名请求

$ openssl req -sha512 -new \-subj "/C=US/ST=TestState/L=TestCity/O=TestOrg/OU=TestOU/CN=Test" \-key test.harbor.com.key \-out test.harbor.com.csr

5.生成 x509 v3扩展文件

$ cat v3.ext 
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names[alt_names]
DNS.1=test.harbor.com
DNS.2=test.harbor
DNS.3=harbor

6.使用该v3.ext文件为的Harbor主机生成证书

$ openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in test.harbor.com.csr -out test.harbor.com.crt

7.提供证书给Harbor和Docker

将服务器的证书和密钥复制到harbor主机证书文件夹中(/etc/docker/certs.d/)

将crt文件 解释为CA证书(cert)

$ openssl x509 -inform PEM -in test.harbor.com.crt -out test.harbor.com.cert

将服务器证书、密钥和CA文件复制到Docker证书文件夹中

$ cp test.harbor.com.cert /etc/docker/certs.d/test.harbor.com/
$ cp test.harbor.com.key /etc/docker/certs.d/test.harbor.com/
$ cp ca.crt /etc/docker/certs.d/test.harbor.com/
安装配置Harbor

安装目录为 /opt/harbor 目录

1. 将离线安装包mv至安装目录并解压

$ mv /tmp/harbor-offline-installer-v2.3.5.tgz /opt/harbor
$ cd /opt/harbor && tar -vxf harbor-offline-installer-v2.3.5.tgz
harbor/harbor.v2.3.5.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl

2.copy原来的配置文件harbor.yml.tmpl 为harbor.yml,并修改harbor的配置文件

$ cd harbor && cp harbor.yml.tmpl harbor.yml

修改的地方有:

$ vim harbor.yml
hostname: test.harbor.com
http:port: 80
https:port: 443certificate: /path/test.harbor.com.certprivate_key: /path/test.harbor.com.key
harbor_admin_password: xxxxx
database:password: xxxxx
data_volume: /opt/harbor/data

3.修改完后启动harbor,配置文件修改后都得先执行 ./prepare 安装执行 ./install

$ ./prepare
$ ./install

docker-compose 常用命令

# docker-compose 命令需要在模板文件(docker-compose.yml)所在目录执行才有效
docker-compose up -d      # 启动服务(后台运行)
docker-compose start      # 启动服务
docker-compose stop       # 停止正在运行的服务
docker-compose down       # 停止和删除容器、网络、卷、镜像等(参数 -v 会将数据卷一起删除)
docker-compose restart    # 重启服务
docker-compose ps         # 查看服务
docker-compose top        # 查看服务中运行的进程

三、Harbor 加入开机自启

$ vim /usr/lib/systemd/system/harbor.service
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
# docker-compose.yml文件为harbor启动文件,应使用绝对路径
ExecStart=/bin/docker-compose -f /opt/harbor/harbor/docker-compose.yml up -d
ExecStop=/bin/docker-compose -f /opt/harbor/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target$ chmod +x  /usr/lib/systemd/system/harbor.service
$  systemctl daemon-reload
$  systemctl start harbor
$  systemctl enable harbor
$  systemctl status harbor

四、测试连接Harbor私有仓库

不建议添加为Docker私有仓库地址,因为需要重启docker才可生效,要登录harbor仓库中时可进行以下操作:

$ vim /etc/hosts
10.40.x.x test.harbor.com
$ docker login test.harbor.com
$ docker pull images

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

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

相关文章

用户界面软件02

基于表单的用户界面 在“基于表单的用户界面”里面,用户开始时选中某个业务处理(模块),然后应用程序就使用一系列的表单来引导用户完成整个处理过程。大型机系统上的大部分用户界面都是这样子的。[Cok97]中有更为详细的讨论。 面…

go如何从入门进阶到高级

针对Go语言的学习,不同阶段应采取不同的学习方式,以达到最佳效果.本文将Go的学习分为入门、实战、进阶三个阶段,下面分别详细介绍 一、社区 Go语言中文网 作为专注于Go语言学习与推广的平台,Go语言中文网为开发者提供了丰富的中…

采用标准化的方式开展设计-研发中运用设计模式

概述 实现规范化、标准化的引导式设计,以业务需求为输入,识别业务特点,并通过引导式设计,找到最适合的设计模式、具体方案,汇总成为应用的设计,拉齐各应用的设计一的致性。 采用标准化的方式开展设计…

Qt之屏幕录制设计(十六)

Qt开发 系列文章 - screencap(十六) 目录 前言 一、实现原理 二、实现方式 1.创建录屏窗口 2.录屏窗口类定义 3.自建容器对象定义 4.用户使用 5.效果演示 总结 前言 利用Qt实现屏幕录制设计,可以通过使用Qt自带的类QScreen、QPixma…

【C语言程序设计——选择结构程序设计】求阶跃函数的值(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 1. 选择结构基本概念 2. 主要语句类型​(if、if-else、switch) 3. 跃迁函数中变量的取值范围 4. 计算阶跃函数的值 编程要求 测试说明 通关代码 测试结果 任务描述 本关任务:输入x的值&#x…

自定义字典转换器用于easyExcel 导入导出

文章目录 引言I 字典转换器、注解、序列化器注解定义自定义字典转换器用于easyExcel 导入导出自定义字典序列化器II 字典存储设计数据库表结构redis缓存引言 需求导入Excel时,根据字典内容或者字段编码转换 导出Excel时,根据字典内容或者字段编码转换 接口响应数据序列化时,…

Mac软件介绍之录屏软件Filmage Screen

软件介绍 Filmage Screen 是一款专业的视频录制和编辑软件,适用于 Mac 系统 可以选择4k 60fps,可以选择录制电脑屏幕,摄像头录制,可以选择区域录制。同时也支持,简单的视频剪辑。 可以同时录制电脑麦克风声音 标准…

RK3588平台开发系列讲解(系统篇)Linux Kconfig的语法

文章目录 一、什么是Kconfig二、config模块三、menuconfig四、menu 和 endmenu五、choice 和 endchoice六、source七、depends on八、default九、help十、逻辑表达式沉淀、分享、成长,让自己和他人都能有所收获!😄 一、什么是Kconfig Kconfig的语法及代码结构非常简单。本博…

.NET 9.0 WebApi 发布到 IIS 详细步骤

微软表示,.NET 9 是迄今为止性能最高的 .NET 版本,对运行时、工作负载和语言方面进行了 1,000 多项与性能相关的改进,并采用了更高效的算法来生成更好的代码。 .NET 9 是 .NET 8 的继任者,特别侧重于云原生应用和性能。 作为标准期…

感知器的那些事

感知器的那些事 历史背景Rosenblatt和Minsky关于感知机的争论弗兰克罗森布拉特简介提出感知器算法Mark I感知机争议与分歧马文明斯基简介单层感知器工作原理训练过程多层感知器工作原理单层感知机 vs 多层感知机感知器模型(Perceptron),是由心理学家Frank Rosenblatt在1957年…

Flutter中的网络请求图片存储为缓存,与定制删除本地缓存

Flutter中的网络请求图片存储为缓存,与定制删除本地缓存 1:封装请求图片函数 2:访问的图片都会转为本地缓存,当相同的请求url,会在本地调用图片 3:本地缓存管理【windows与andriod已经测试】【有页面】【有…

复杂园区网基本分支的构建

目录 1、各主机进行网络配置。2、交换机配置。3、配置路由交换,进行测试。4、配置路由器接口和静态路由,进行测试。5、最后测试任意两台主机通信情况 模拟环境链接 拓扑结构 说明: VLAN标签在上面的一定是GigabitEthernet接口的&#xff0c…

快速入门Spring Cloud Alibaba,轻松玩转微服务

​ 1 快速入门Spring Cloud Alibaba,轻松玩转微服务 1.1 架构 架构图: 1.2 项目结构 1.2.1 系统框架版本 版本适配查看:https://sca.aliyun.com/docs/2023/overview/version-explain/ Spring Boot Version :3.2.4 Spring Clo…

数据结构大作业——家谱管理系统(超详细!完整代码!)

目录 设计思路: 一、项目背景 二、功能分析 查询功能流程图: 管理功能流程图: 三、设计 四、实现 代码实现: 头文件 结构体 函数声明及定义 创建家谱树头结点 绘制家谱树(打印) 建立右兄弟…

OpenHarmony通过挂载镜像来修改镜像内容,RK3566鸿蒙开发板演示

在测试XTS时会遇到修改产品属性、SElinux权限、等一些内容,修改源码再编译很费时。今天为大家介绍一个便捷的方法,让OpenHarmony通过挂载镜像来修改镜像内容!触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566四核处理器,树…

Gitee上传项目代码教程(详细)

工具必备:Git Bash 上传步骤 1.在Gitee创建项目仓库 2.进入本地项目目录 右键打开Git Bash here 3.配置用户名和邮箱 如果之前给git配置过用户名和邮箱可跳过 查看Git是否配置成功:git config --list git config --global user.name "xxx"…

uni-app 资源引用(绝对路径和相对路径)方法汇总

文章目录 一、前言🍃二、绝对路径和相对路径2.1 绝对路径2.2 相对路径 三、引用组件四、引用js4.1 js 文件引入4.2 NPM支持 五、引用css六、引用json6.1 json文件引入 七、引用静态资源7.1 模板内引入静态资源7.2 css 引入静态资源7.3 js/uts 引入静态资源7.4 静态资…

Java100道面试题

1.JVM内存结构 1. 方法区(Method Area) 方法区是JVM内存结构的一部分,用于存放类的相关信息,包括: 类的结构(字段、方法、常量池等)。字段和方法的描述,如名称、类型、访问修饰符…

【优选算法 分治】深入理解分治算法:分治算法入门小专题详解

快速排序算法 (1) 快速排序法 (2) 快排前后指针 (3) 快排挖坑法 颜色分类 题目解析 算法原理 算法原理和移动零非常相似 简述移动零的算法原理 cur 在从前往后扫描的过程中,如果扫描的数符合 f 性质,就把这个数放到 dest 之…

【前端系列01】优化axios响应拦截器

文章目录 一、前言🚀🚀🚀二、axios响应拦截器:☀️☀️☀️2.1 为什么前端需要响应拦截器element ui的消息组件 一、前言🚀🚀🚀 ☀️ 回报不在行动之后,回报在行动之中。 这个系列可…