Ubuntu 安装 Harbor

一、安装 docker

原文参考传送门

1st 卸载系统自带的 docker 应用

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

2nd 设置Docker 的apt源

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc# Add the repository to Apt sources:
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

3rd 安装 docker 

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4th 测试 

sudo docker run hello-world

二、安装 harbor

1st 下载 harbor 的离线安装包

下载地址

2nd 解压

tar xzvf harbor-offline-installer-version.tgz

3rd 生成相关证书

a) 生成 CA 证书私钥

openssl genrsa -out ca.key 4096

b) 生成 CA 证书

openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=wayne.harbor.com" \-key ca.key \-out ca.crt

c)生成服务端证书

openssl genrsa -out wayne.harbor.com.key 4096

 d)生成 CSR 文件

openssl req -sha512 -new \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=wayne.harbor.com" \-key wayne.harbor.com.key \-out wayne.harbor.com.csr

e)生成 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=wayne.harbor.com
DNS.2=wayne.harbor
DNS.3=wayne
EOF

f)生成 crt 文件

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

 4th 使用证书

A .harbor使用 

1th 将 crt 和 key 文件,提供给 harbor 使用。

复制到/data/docker/harbor/certs中。这个 certs 文件夹可能没有。因此需要创建

2nd 复制 harbor.yml.tmpl 文件到 harbor.yml,并配置域名和证书
cp harbor.yml.tmpl harbor.yml
vim harbor.yml

 B.docker 使用

 1st 将之前生成的 crt 文件转换成 cert 文件,以供 docker 使用。

注意是之前生成的,而不是拷贝之后的crt

cd /data/docker/certopenssl x509 -inform PEM -in wayne.harbor.com.crt -out wayne.harbor.com.cert

 原因

The Docker daemon interprets .crt files as CA certificates and .cert files as client certificates.

 2nd 将证书复制到 docker 的 certs.d对应域名的文件夹下。

如果没有文件夹,要提前建好

cp wayne.harbor.com.cert /etc/docker/certs.d/wayne.harbor.com/
cp wayne.harbor.com.key /etc/docker/certs.d/wayne.harbor.com/
cp ca.crt /etc/docker/certs.d/wayne.harbor.com/
3rd 重启 docker 服务 
systemctl restart docker

 5th 执行安装

 在 harbor的文件夹内,执行./install.sh文件

根据提示,等待安装完成或者根据提示,进行报错修改

三、测试

安装完成后,浏览器输入 https://wayne.harbor.com 地址之后,就可以打开相关页面了

四、 问题 

问题一、Chrome 访问 https 时,可能提示因为证书问题,导致无法访问的问题。

此时需要在电脑上导入自己生成的相关证书,并改为信任之后,重新打开浏览器就行

苹果

windows

 

问题二、火狐无法访问。

目前没有好招。 

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

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

相关文章

MySQL的root用户无法远程连接

默认root用户只允许本地连接&#xff0c;所以需要修改mysql库中user表中名为root的用户的host为“%” select Host,User from user;UPDATE mysql.user SET host % WHERE user root; FLUSH PRIVILEGES;

什么是最优物理隔离文件导出导入解决方案,来看看吧

企业进行物理隔离的主要原因是为了提高安全性&#xff0c;减少安全风险。物理隔离通常指的是将网络或系统中的关键部分与外界断开直接连接&#xff0c;以增强安全性。在企业环境中&#xff0c;这通常意味着将内部网络&#xff08;内网&#xff09;与外部网络&#xff08;如互联…

低视力者出行升级:适配服务助力双手解放与环境感知

作为一名资深记者&#xff0c;我有幸深入了解并记录低视力者在日常出行中所面临的挑战与解决方案。近年来&#xff0c;低视力者辅助设备适配服务提供领域的创新成果&#xff0c;尤其是结合手机应用的辅助设备&#xff0c;正在以人性化、智能化的方式&#xff0c;帮助低视力者实…

网安学习笔记-day13,文件共享暴力破解

文件共享漏洞 准备阶段 配置IP地址 Windows XP 10.1.1.2/24 Windows Server 2003 10.1.1.1/24 开启文件共享 文件共享使用的是445端口&#xff0c;输入命令net share 在XP上打开运行窗口&#xff08;CtrlR&#xff09;输入\\10.1.1.1&#xff0c;出现以下界面则成功开启共享…

1142 - SELECT command denied to user ···

MySql子账户操作数据库权限不够&#xff0c;提示错误 1142 - SELECT command denied to user database 1142 - ALTER command denied to user database 以下命令可以解决 GRANT SELEC your_database_name TO mysql_account%;

块存储、文件存储、对象存储概念与区别

1. 块存储 块存储是将数据切分成固定大小的块&#xff0c;然后将这些块存储在物理设备&#xff08;如硬盘、固态硬盘&#xff09;上。每个块都有唯一的标识符&#xff0c;并且可以独立地被读取、写入或删除。块存储通常用于存储文件系统&#xff0c;例如操作系统的文件系统&am…

【python】Python成语接龙游戏[1-3难度均有](源码+数据)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

Node.js -- HTTP协议和网络基础概念

文章目录 1. 初识HTTP协议2. 窥探HTTP协议2.1 请求报文结构2.2 响应报文 3. 网络基础概念3.1 IP3.2 端口 本节相关内容都可以在 添加链接描述进行查看&#xff0c;深入了解相关内容。 1. 初识HTTP协议 HTTP协议其实就是浏览器和服务器之间的一个协议&#xff0c;浏览器会向服务…

k8s学习(三十六)centos下离线部署kubernetes1.30(单主节点)

文章目录 服务器准备工作一、升级操作系统内核1 查看操作系统和内核版本2 下载内核离线升级包3 升级内核4 确认内核版本 二、修改主机名/hosts文件1 修改主机名2 修改hosts文件 三、关闭防火墙四、关闭SELINUX配置五、时间同步1 下载NTP2 卸载3 安装4 配置4.1 主节点配置4.2 从…

MyBatis-Plus分页查询IPage的使用方法,如何自定义分页查询功能?

目录 1. MyBatis-Plus 分页插件介绍 2. 准备工作-创建项目配置环境 2.1 创建数据库表Product商品表 2.2 创建Maven项目&#xff0c;创建包&#xff0c;接口&#xff0c;类 2.3 添加MyBatisPlus依赖和 Lombok 插件 2.4 编写 Configuration 分页插件配置文件 2.5 编写 app…

AJAX——事件循环(EventLoop)

1.事件循环&#xff08;EventLoop&#xff09; 概念&#xff1a;JavaScript有一个基于事件循环的并发模型&#xff0c;事件循环负责执行代码、收集和处理事件以及执行队列中的子任务。这个模型与其它语言中的模型截然不同&#xff0c;比如C和Java。 原因&#xff1a;JavaScri…

使用 FFMPEG 实现录屏和录音

FFmpeg 是一个非常强大的开源工具&#xff0c;它可以用来处理音频和视频。 要使用 FFmpeg 进行录屏和录音&#xff0c;需要首先确保你的系统已经安装了 FFmpeg。在大多数 Linux 发行版中&#xff0c;可以通过包管理器&#xff08;如 apt 或 yum&#xff09;来安装。在 Windows …

【Flask】Flask中HTTP请求与接收

一、接收http请求与返回响应 在Flask中&#xff0c;可以通过app.route装饰器来定义路由函数。 app.route(/BringGoods,methods [POST, GET]) GET请求&#xff1a;使用request.args.get(key)或者request.values.get(key)来获取URL中的参数。 POST请求&#xff1a; 使用req…

nginx配置挂载html

目标 很多软件的官方文档&#xff0c;在国内打开很慢&#xff0c;每次都得等很久&#xff0c;看到官方同时提供了html的包&#xff0c;所以想着挂载到本地nginx下&#xff0c;查看会方便很多。 下载官方html文档包&#xff0c;解压到documentation_htmls下 想添加新的文档也是…

【调制】π/4-DQPSK信号模型及其相关特性分析 【附MATLAB代码】

MATLAB代码 % pi/4-DQPSK modulation %输入一串数&#xff0c;输出经过差分并映射的I、Q两路数据 ​ function [I,Q]pi4_dqpskmod(data) ​ nlength(data)./2; data1data.*2-1; ​ Idatazeros(1,n); Qdatazeros(1,n); ​ ​ Idatadata1(1,1:2:2*n); %串并变换 Qdatadata1(…

yolo8目标检测+多目标跟踪算法实现车流量统计

目前常用的车流量统计方法包括基于虚拟区域和基于车辆跟踪的车流量统计方法&#xff0c;如下图所示。前者在视频帧中手动设定虚拟检测区域&#xff0c;通过判断虚拟检测区域的灰度值变化判断车辆是否经过&#xff0c;从而进行车流量统计。其中虚拟检测区域可以由点、线以及线圈…

如何理解自然语言处理中的位置编码(Positional Encoding)

在自然语言处理和特别是在使用Transformer模型中,位置编码(Positional Encoding)是一个关键的概念。它们的作用是为模型提供序列中各个元素的位置信息。由于Transformer架构本身并不像循环神经网络(RNN)那样具有处理序列的固有能力,位置编码因此显得尤为重要。 为什么需…

防爆轮式巡检机器人作用和优势?

在当今的工业领域&#xff0c;安全生产始终是至关重要的议题。而在一些具有爆炸风险的环境中&#xff0c;如石油、化工、燃气等行业&#xff0c;传统的人工巡检方式面临着诸多挑战。然而&#xff0c;随着科技的飞速发展&#xff0c;防爆轮式巡检机器人应运而生&#xff0c;为这…

(顶刊复现)基于配电网韧性提升的应急移动电源预配置和动态调度(上)—MPS预配置

参考文献&#xff1a; [1] Lei S , Chen C , Zhou H ,et al.Routing and Scheduling of Mobile Power Sources for Distribution System Resilience Enhancement[J].IEEE Transactions on Smart Grid, 2019:5650-5662.DOI:10.1109/TSG.2018.2889347. 这篇博客是上述SCI一区论文…

vue快速入门(三十四)组件data定义方法

注释很详细&#xff0c;直接上代码 上一篇 新增内容 数据绑定方法照常数据定义方法需要作为函数返回值 源码 MyTest.vue <template><div><h1>我的功德&#xff1a;{{merits}} </h1><button click"meritsnum1">功德加一</button>…