通过Harbor构建docker私服仓库

        Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,它扩展了开源的Docker Distribution,通过添加一些企业必需的功能特性,如安全、标识和管理等。Harbor由VMware公司开发并开源,旨在帮助用户迅速搭建一个企业级的Docker Registry服务。

        作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全,提升了用户使用Registry构建和运行环境传输镜像的效率。它支持安装在多个Registry节点的镜像资源复制,确保数据和知识产权在公司内部网络中管控。此外,Harbor还提供了高级的安全特性,如用户管理、访问控制和活动审计等。

官网地址:GitHub - goharbor/harbor: An open source trusted cloud native registry project that stores, signs, and scans content.

配置要求:

安装 harbor 的机器,机器需要的内存至少要 2G

一、为 Harbor 自签发证书

需先安装openssl这里不进行赘述

【1】生成ca证书

openssl genrsa -out ca.key 4096 openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/CN=harbor23.com" -key ca.key -out ca.crt

【2】生成服务器证书

创建私钥

openssl genrsa -out server.key 4096

生成签名

openssl req -new -sha512 -subj "/CN=harbor23.com" -key server.key -out server.csr

生成一个包含特定扩展字段的X.509证书配置文件

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]DNS.1=
harbor23.com
EOF

生成证书

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

复制服务器证书到机器目录下

cp server.crt /etc/docker/certs.d/harbor23.com/server.crt

二、安装 harbor

mkdir /data/install -p cd /data/install/

【1】 下载harbor

cd /data/install/ 

把 harbor 的离线包 harbor-offline-installer-v2.3.0-rc3.tgz 上传到这个目录,

离线包在课件 里提供了 下载 harbor 离线包的地址: https://github.com/goharbor/harbor/releases/tag/

【2】解压

tar -zxvf harbor-offline-installer-v2.3.0-rc3.tgz cd harbor cp harbor.yml.tmpl harbor.yml vim harbor.yml

【3】修改配置文件:

hostname: harbor 

修改 hostname,可以自己定义不能用localhost, harbor23.com

协议用 https 

certificate: /data/ssl/server.crt  指向之前生成的证书

private_key: /data/ssl/harbor.key  指向之前生成的私钥

邮件和 ldap 不需要配置,在 harbor 的 web 界面可以配置 其他配置采用默认即可 修改之后保存退出 

注:harbor 默认的账号密码:admin/Harbor12345

【4】安装

安装 harbor 需要的离线镜像包 docker-harbor-2-3-0.tar.gz 在课件,可上传到 harbor 机器, 执行

docker load -i 解压

docker load -i docker-harbor-2-3-0.tar.gz 加载镜像

cd /data/install/harbor 

./install.sh 成功安装后会生成docker-compose文件

扩展: 

如何停掉 harbor:

cd /data/install/harbor

docker-compose stop 

如何启动 harbor: 

cd /data/install/harbor 

docker-compose start

如果 docker-compose start 启动 harbor 之后,还是访问不了,那就需要重启虚拟机

Harbor 图像化界面使用说明

在浏览器输入: https://harbor23.com

账号:admin 

密码:Harbor12345 

输入账号密码出现如下: 

所有基础镜像都会放在 library 里面,这是一个公开的镜像仓库 

新建项目->起个项目名字 test(把访问级别公开那个选中,让项目才可以被公开使用)

三、测试使用 harbor 私有镜像仓库

【1】修改 docker 配置

vim /etc/docker/daemon.json

{ "registry-mirrors": ["https://rsbud4vc.mirror.aliyuncs.com","https://registry.dockercn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hubmirror.c.163.com"], "insecure-registries": ["192.168.40.181","localhost"] 
}

【2】修改配置之后使配置生效

systemctl daemon-reload && systemctl restart docker

查看 docker 是否启动成功

systemctl status docker

显示如下,说明启动成功: 

Active: active (running) since Fri … ago

注意: 配置新增加了一行内容如下: "insecure-registries":["192.168.40.181"], 上面增加的内容表示我们内网访问 harbor 的时候走的是 http,192.168.40.181 是安装 harbor 机器 的 ip

【3】登录 harbor

docker login harbor23.com 

Username:admin 

Password: Harbor12345

【4】上传镜像

导入 tomcat 镜像,tomcat.tar.gz 在课件里

docker load -i tomcat.tar.gz

把 tomcat 镜像打标签

docker tag tomcat:latest 192.168.40.181/test/tomcat:v1 

执行上面命令就会把 192.168.40.181/test/tomcat:v1 上传到 harbor 里的 test 项目下

docker push 192.168.40.181/test/tomcat:v1 

执行上面命令就会把 192.168.40.181/test/tomcat:v1 上传到 harbor 里的 test 项目下

至此harbor私服能够正常使用

【5】机器上删除镜像

docker rmi -f 192.168.40.181/test/tomcat:v1

【6】拉取镜像

docker pull 192.168.40.181/test/tomcat:v1

四、问题汇总

1、docker login harbor23.com 

登录时报 x509: certificate signed by unknown authority;在需要登录的主机上配置

修改 sudo vi /etc/docker/daemon.json

{ "insecure-registries": [ "harbor23.com", "10.32.23.77" ], "registry-mirrors": [ "https://2wk9cvvl.mirror.aliyuncs.com" ] }

然后重启docker服务 service docker restart

2、docker网络问题,centos容器无法访问harbor23.com

vi /etc/hosts

将harbor23.com 指向host.docker.internal 地址

容器之间相互访问可以通过host.docker.internal 进行访问

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

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

相关文章

16:定时器和计数器

定时器和计数器 1、定时器和计数器的介绍2、定时器是如何工作3、寄存器4、51单片机定时器简介&#xff08;数据手册&#xff09;5、定时器中的寄存器&#xff08;数据手册&#xff09;5.1、TCON&#xff08;定时器控制寄存器&#xff09;5.2、TMOD&#xff08;工作模式寄存器&a…

WordPress突然后台无法管理问题

登录WordPress后台管理评论&#xff0c;发现点击编辑、回复均无反应。 尝试清除缓存、关闭CF连接均无效。 查看插件时发现关闭wp-china-yes插件可以解决问题。 后来又测试了下发现加速管理后台这项&#xff0c;在启用时会发生点击无效问题&#xff0c;禁用就好了&#xff0c;不…

Mysql进阶(sql优化和explain关键字)

一、为什么要对SQL进行优化&#xff1f; 由于业务数据量的增多&#xff0c;SQL的执行效率对程序的运行效率影响增大&#xff0c;此时就需要对SQL进行优化。 二、SQL优化的方法 1.查询sql尽量不要使用select * &#xff0c;而是具体字段。 节省资源&#xff0c;减少开销。 …

Flink Format系列(2)-CSV

Flink的csv格式支持读和写csv格式的数据&#xff0c;只需要指定 format csv&#xff0c;下面以kafka为例。 CREATE TABLE user_behavior (user_id BIGINT,item_id BIGINT,category_id BIGINT,behavior STRING,ts TIMESTAMP(3) ) WITH (connector kafka,topic user_behavior…

【01】判断素数/质数(C语言)

目录 &#xff08;1&#xff09;素数特点&#xff1a;只能被1和本身整除 &#xff08;2&#xff09;代码如下&#xff1a; &#xff08;3&#xff09;运行结果如下 ​编辑 &#xff08;4&#xff09;函数引申 &#xff08;1&#xff09;素数特点&#xff1a;只能被1和本身…

飞马座卫星

1960年代马歇尔太空飞行中心的历史显然与建造土星五号月球火箭有关。然而&#xff0c;鲜为人知的是该中心在设计科学有效载荷方面的早期工作。 Fairchild 技术人员正在检查扩展的 Pegasus 流星体探测表面。Pegasus 由马里兰州黑格斯敦的 Fairchild Stratos Corporation 通过马歇…

HarmonyOS SDK 助力新浪新闻打造精致易用的新闻应用

原生智能是HarmonyOS NEXT的核心亮点之一&#xff0c;依托HarmonyOS SDK丰富全面的开放能力&#xff0c;开发者只需通过几行代码&#xff0c;即可快速实现AI功能。新浪新闻作为鸿蒙原生应用开发的先行者之一&#xff0c;从有声资讯入手&#xff0c;基于Speech Kit朗读控件上线听…

Docker-Learn(二)保存、导入、使用Docker镜像

1.保存镜像 根据上一节内容&#xff0c;将创建好镜像进行保存&#xff0c;需要退出当前的已经在运行的docer命令行中断里面&#xff0c;可以通过在终端里面输入指令exit或者按下键盘上的 ctrlD建退出&#xff1a; 回到自己的终端里面&#xff0c;输入指令&#xff1a; docker…

基于全连接神经网络模型的手写数字识别

基于全连接神经网络模型的手写数字识别 一. 前言二. 设计目的及任务描述2.1 设计目的2.2 设计任务 三. 神经网络模型3.1 全连接神经网络模型方案3.2 全连接神经网络模型训练过程3.3 全连接神经网络模型测试 四. 程序设计 一. 前言 手写数字识别要求利用MNIST数据集里的70000张…

05 06 Verilog基础语法与应用讲解

05. 1. 位操作 计数器实验升级&#xff0c;设计8个LED灯以每个0.5s的速率循环闪烁&#xff08;跑马灯&#xff09; 1.1 方法1&#xff1a;使用移位操作符<<来控制led灯的循环亮灭 设计代码 Verilog中&#xff0c;判断操作的时候不加位宽限定是可以的&#xff0c;比如i…

解析spritf和sscanf与模拟常用字符串函数strchr,strtok(二)

今天又来继续我们的字符串函数的文章&#xff0c;这也是最后一篇了。希望这两篇文章能让各位理解透字符串函数。 目录 strchr strtok sprintf和sscanf strchr strchr 是一个用于在字符串中查找特定字符首次出现位置的函数。以下是解析和模拟实现 strchr 函数的示例&…

vue3:25—其他API

目录 1、shallowRef和shallowReactive 2、readonly与shallowReadonly readonly shallowReadonly 3、toRaw和markRaw toRaw markRaw 4、customRef 1、shallowRef和shallowReactive shallowRef 1.作用:创建一个响应式数据&#xff0c;但只对顶层属性进行响应式处理。2…

Java玩转《啊哈算法》纸牌游戏之小猫钓鱼

缘起性空 文章目录 缘起代码地址纸牌游戏分析代码演示优化 缘起 各位小伙伴们好呀&#xff0c;还有几天就要过年了&#xff0c;祝大家新年快乐&#xff0c;万事胜意&#xff01; 本人最近看了下《啊哈算法》&#xff0c;确实阔以。 但稍显遗憾的是&#xff0c;书籍示例代码是…

Qt QVariant类应用

QVariant类 QVariant类本质为C联合(Union)数据类型&#xff0c;它可以保存很多Qt类型的值&#xff0c;包括 QBrush&#xff0c;QColor&#xff0c;QString等等&#xff0c;也能存放Qt的容器类型的值。 QVariant::StringList 是 Qt 定义的一个 QVariant::type 枚举类型的变量&…

适用于 Windows 和 Mac 的 16 款最佳数据恢复软件

数据恢复软件是找回因硬盘损坏、病毒攻击或意外删除数据等原因而在设备上丢失的数据的最佳方法。在数字世界中&#xff0c;丢失数据是一件非常糟糕的事情&#xff0c;这会让许多人的情况变得更糟。使用最佳数据恢复软件可以减轻您必须努力恢复丢失数据的压力。它将带回您的大部…

7机器人位姿的数学描述与坐标变

由上次刚体的空间转动直接切换为机器人相关术语。 1.机器人位姿的数学描述与坐标变换 1.1位姿描述 {B}相对于{A}的姿态描述用3x3矩阵表示为&#xff1a; 式中为三个单位正交主矢量&#xff0c;分别表示刚体坐标系{B}的三个坐标轴XBYBZB在参考系{A}中的方位&#xff0c;∠XBXA表…

如何实现Vuex本地存储

在前端开发中&#xff0c;Vuex是一款非常强大的状态管理工具&#xff0c;但是默认情况下&#xff0c;Vuex的数据是存储在内存中的&#xff0c;刷新页面后数据将会丢失。这往往会导致用户在刷新页面后需要重新登录等繁琐的操作。本篇文章将教会您如何实现Vuex的本地存储&#xf…

人工智能专题:量子汇编语言和量子中间表示发展白皮书

今天分享的是人工智能系列深度研究报告&#xff1a;《人工智能专题&#xff1a;量子汇编语言和量子中间表示发展白皮书》。 &#xff08;报告出品方&#xff1a;量子信息网络产业联盟&#xff09; 报告共计&#xff1a;78页 量子计算与量子编程概述 随着社会生产力的发展&am…

sqli靶场完结篇!!!!

靶场&#xff0c;靶场&#xff0c;一个靶场打一天&#xff0c;又是和waf斗智斗勇的一天&#xff0c;waf我和你拼啦&#xff01;&#xff01; 31.多个)号 先是一套基本的判断 &#xff0c;发现是字符型&#xff0c;然后发现好像他什么都不过滤&#xff1f;于是开始poc 3213131…

相机图像质量研究(7)常见问题总结:光学结构对成像的影响--镜片固化

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…