Ubuntu 23.04 安装 Harbor

news2025/1/19 22:04:37

Ubuntu 23.04 安装 Harbor

  • 安装 Docker CE
  • 配置 tls 证书
  • 配置 docker 信任自签名证书
  • 下载和安装 Harbor
  • 设置 Harbor 开机启动
  • 验证

安装 Docker CE

sudo apt-get remove docker docker-engine docker.io containerd runc

sudo apt-get update -y
sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] 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 -y update

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -a -G docker oracle

验证,

sudo docker run hello-world

配置 tls 证书

修改 /etc/hosts,添加本地域名和IP的匹配信息,示例中使用域名 server.local,请根据情况修改,

sudo vi /etc/hosts

--- add
192.168.31.14 harbor.server.local
---

下面是创建证书的示例命令,示例中使用域名 server.local,请根据情况修改,

sudo mkdir -p /u01/certs; cd /u01/certs
openssl genrsa -des3 -passout pass:123456 -out ca.key 2048
openssl rsa -in ca.key -passin pass:123456 -out ca.key
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt -subj "/CN=server.local"
openssl genrsa -out tls.key 2048
openssl req -new -key tls.key -out tls.csr -subj "/CN=server.local"
cat > server.ext <<EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = *.server.local
EOF

openssl x509 -req -in tls.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out tls.crt -days 3650 -extfile server.ext

更换 harbor 的 tls 证书,

sudo cp /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.bak
sudo cp /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.bak
sudo cp /u01/certs/tls.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo cp /u01/certs/tls.key /opt/bitnami/nginx/conf/bitnami/certs/server.key

重启 nginx,

sudo /opt/bitnami/ctlscript.sh restart nginx

配置 docker 信任自签名证书

refer: https://goharbor.io/docs/2.8.0/install-config/configure-https/

sudo mkdir -p /etc/docker/certs.d/harbor.server.local
sudo cp /u01/certs/ca.crt /etc/docker/certs.d/harbor.server.local/ca.crt
# sudo cp /u01/certs/tls.crt /etc/docker/certs.d/harbor.server.local/harbor.server.local.cert
# sudo cp /u01/certs/tls.key /etc/docker/certs.d/harbor.server.local/harbor.server.local.key
sudo systemctl daemon-reload
sudo systemctl restart docker

下载和安装 Harbor

下载Harbor

cd /tmp
curl -s https://api.github.com/repos/goharbor/harbor/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep '\.tgz$' | wget -qi -

解压Harbor

sudo su -
cd /opt
tar xvzf /tmp/harbor-offline-installer*.tgz && cd harbor

Step3. 修改harbor.yaml

cp harbor.yml.tmpl harbor.yml
vi harbor.yml

--- 请根据各自情况修改下面项目
hostname: harbor.server.local

https:
  certificate: /u01/cert/tls.crt
  private_key: /u01/cert/tls.key

external_url: https://harbor.server.local

harbor_admin_password: <your_password>

data_volume: /u01/harbor-data

data_volume: /u01/harbor-data

uaa:
   ca_file: /u01/certs/ca.crt
---

Step4. 安装Harbor

sudo mkdir -p /u01/harbor-data
sudo chmod 777 /u01/harbor-data

sudo docker load < harbor.v2.8.0.tar.gz
sudo ./prepare
sudo ./install.sh

设置 Harbor 开机启动

sudo crontab -e

--- add
@reboot /usr/bin/docker compose -f /opt/harbor/docker-compose.yml start
---

验证

通过浏览器打开,https://harbor.server.local,验证 Okay,

在这里插入图片描述

通过 docker login 登录 harbor.server.local,验证 Okay,

在这里插入图片描述
通过 docker push 上传镜像,验证 Okay,

docker pull busybox
docker tag busybox harbor.server.local/library/busybox
docker push harbor.server.local/library/busybox

在这里插入图片描述
通过浏览器打开,https://harbor.server.local,验证镜像已经上传成功,

在这里插入图片描述

—完结—

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

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

相关文章

shell脚本----循环语句for

文章目录 一、echo命令二、for循环三、continue和break 一、echo命令 常见转义字符&#xff1a; 转义符号含义-n表示不换行输出\e输出转义字符&#xff0c;将转义后的内容输出到屏幕上\b转义后相当于按退格键&#xff0c;但前提是b后面存在字符: b表示删除前一个字符&#xf…

【Spring篇】IOC/DI配置管理第三方bean

&#x1f353;系列专栏:Spring系列专栏 &#x1f349;个人主页:个人主页 目录 一、案例:数据源对象管理 1.环境准备 2.实现Druid管理 3.实现C3P0管理 二、加载properties文件 1.第三方bean属性优化 2.读取单个属性 3.注意事项 三、核心容器 1.环境准备 2.容器 1.容器的创建…

linux|进程间通信如何加锁

进程间通信有一种[共享内存]方式&#xff0c;大家有没有想过&#xff0c;这种通信方式中如何解决数据竞争问题&#xff1f;我们可能自然而然的就会想到用锁。但我们平时使用的锁都是用于解决线程间数据竞争问题&#xff0c;貌似没有看到过它用在进程中&#xff0c;那怎么办&…

【Linux】进程概念与fork初识——if与else竟然能够同时执行?!

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f337;进程是什么&#x1f337;进程的描述——PCB&#x1f337;进程的组织&#x1f337;如何查看进程&#x1f337;如何通过系统调用查看进程PID&#x1f337;通过系统调用创建进程&#x1f33a;认识fork&#x1f3…

TuGraph 开源数据库体验

TuGraph 开源数据库体验 文章目录 TuGraph 开源数据库体验1. 简单介绍2. 可视化界面体验&#xff1a;查询界面&#xff1a;数据建模&#xff1a;数据导入&#xff1a; 3. 体验心得&#xff1a; 1. 简单介绍 TuGraph 是蚂蚁集团自主研发的大规模图计算系统&#xff0c;提供图数…

大数据技术之SparkSQL

第1章 Spark SQL概述 1.1 什么是Spark SQL 1&#xff09;Spark SQL是Spark用于结构化数据&#xff08;Structured Data&#xff09;处理的Spark模块。 1.2 为什么要有Spark SQL 1.3 Spark SQL原理 1.3.1 什么是DataFrame &#xff08;1&#xff09;DataFrame是一种类似RDD的分…

统计学习方法第四章——朴素贝叶斯法

x.1 前言 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。是通过给定training dataset学习联合概率分布的方法&#xff0c;是一种生成方法。 x.2 使用贝叶斯定理做分类 使用贝叶斯定理做分类&#xff0c;相比较于朴素贝叶斯即丢除特征条件独立假设这个条件。 …

MySQL主从复制详细介绍

一、主从复制的目的 ​ MySQL内建的复制功能是构建基于MySQL的大规模、高性能应用的基础&#xff0c;复制功能的目的是构建高性能的应用&#xff0c;同时也是高可用性、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。比较常见的用途有以下几种&#xff1a; 数据分布&am…

APP渗透—查脱壳、反编译、重打包签名

APP渗透—查脱壳、反编译、重打包签名 1. 前言1.1. 其它 2. 安装工具2.1. 下载jadx工具2.1.1. 下载链接2.1.2. 执行文件 2.2. 下载apktool工具2.2.1. 下载链接2.2.2. 测试 2.3. 下载dex2jar工具2.3.1. 下载链接 3. 查壳脱壳3.1. 查壳3.1.1. 探探查壳3.1.2. 棋牌查壳 3.2. 脱壳3…

【MiniGPT-4】手把手教部署

最近MiniGPT4开源了&#xff0c;获得了很多网友好评&#xff0c;在Github上获得了1.6万的star&#xff0c;它相比ChatGPT3.5来说&#xff0c;可以实现图片识别&#xff0c;生成想要的文本效果&#xff0c;理解能力非常强。 论文地址&#xff1a;https://github.com/Vision-CAIR…

【大数据之Hadoop】二十一、MapReduce、HDFS、Yarn配合工作(作业提交全过程)

1-11、26为Yarn&#xff1b;12-17为HDFS写数据流程&#xff1b;18-25、27-31为MapReduce&#xff1b;19-25为Shuffle&#xff1b;32-41为HDFS写数据流程。 &#xff08;0&#xff09;MR程序提交到客户端所在的节点&#xff0c;在集群模式中运行MR程序&#xff0c;当运行到主函…

数学建模第七天:数学建模算法篇之插值及MATLAB实现

目录 一、前言 1、引例 2、拟合定义 3、拟合与插值的关系 二、拟合 1、线性最小二乘法求解 ①思路 ②解法 2、MATLAB对线性最小二乘拟合的实现 ①函数说明 ②求解例题 3、MATLAB实现非线性曲线拟合 ①lsqcurvefit函数 ②代码求解 4、MATLAB实现非线性最小二乘拟…

华为2023暑期笔试(2-2)——最近最少使用(LRU, Least recently used)缓存算法

目录 题目内容解答要求&#xff08;解答要求限制了只能使用LRU&#xff09;输入描述样例思路代码 题目内容 你是一名网络工程师&#xff0c;你正在为一家云计算公司开发一个虚拟机管理系统。你的系统需要为每个虚拟机分配一个唯一的ID&#xff0c;用来标识和通信。为了实现这个…

C++基础demo(C++入门基础案例)

C入门基础案例学习与了解 demo16 计算年份是否为闰年&#xff08;各种运算符结合&#xff09;demo17 打印ASCII码表demo18 求完数demo19 密码验证&#xff08;if……else&#xff09;demo20 图书管理&#xff08;if…else if…else&#xff09;demo21 信号灯&#xff08;和--&a…

python中使用ctypes库调用使用MMDeploy C++ SDK编译得到的dll文件时,出现WinError126的解决方法

之前&#xff0c;通过以下两篇文章&#xff0c;着重介绍了&#xff0c;使用openMMLab开发的MMDeploy库对MMxx系列仓库训练得到的权重pth转换得到的onnx&#xff0c;并分别使用python SDK和C SDK进行调用的详细步骤&#xff1a; 使用MMDeploy&#xff08;预编译包&#xff09;转…

Enterprise:如何在 Elastic 企业搜索引擎中添加对更多语言的支持

作者&#xff1a;Ioana-Alina Tagirta Elastic App Search 中的引擎&#xff08;engines&#xff09;使你能够索引文档并提供开箱即用的可调搜索功能。 默认情况下&#xff0c;引擎支持预定义的语言列表。 如果你的语言不在该列表中&#xff0c;此博客将说明如何添加对其他语言…

RabbitMQ笔记

一、MQ与RabbitMQ概述 1. MQ简述 MQ&#xff08;Message Queue&#xff09;消息队列&#xff0c;是基础数据结构中 “先进先出” 的一种数据结构&#xff0c;也是在消息的传输过程中保存消息的容器&#xff08;中间件&#xff09;&#xff0c;多用于分布式系统之间进行通信。 …

[Pandas] 设置DataFrame的index索引起始值为1

导入数据 import pandas as pddf pd.DataFrame([[liver,E,89,21,24,64],[Arry,C,36,37,37,57],[Ack,A,57,60,18,84],[Eorge,C,93,96,71,78],[Oah,D,65,49,61,86]], columns [name,team,Q1,Q2,Q3,Q4]) df 上述DataFrame中的index索引列默认是从0开始的&#xff0c;那么我们…

【Spark】Spark是什么?能干什么?有什么特点?

一、什么是Spark 官网&#xff1a;http://spark.apache.org Apache Spark™ is a multi-language engine for executing data engineering, data science, and machine learning on single-node machines or clusters. Spark是一种快速、通用、可扩展的大数据分析引擎&#xf…