通过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 进行访问

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

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

相关文章

点云transformer算法: FlatFormer 论文阅读笔记

代码&#xff1a;https://github.com/mit-han-lab/flatformer论文&#xff1a;https://arxiv.org/abs/2301.08739[FlatFormer.pdf] Flatformer是对点云检测中的 backbone3d部分的改进工作&#xff0c;主要在探究怎么高效的对点云应用transformer 具体的工作如下&#xff1a;一…

PostgreSQL的wal文件回收问题

引子 将PostgreSQL的GUC参数wal_recycle设置为on&#xff0c;然后对数据库执行一定业务量的操作&#xff0c;会发现在pg_wal目录下&#xff0c;有很多未来使用的wal文件&#xff0c;且创建时间比现在正在使用的wal文件更早&#xff0c;下文将描述和分析这种情况。 问题描述 …

springboot160社区智慧养老监护管理平台设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

【数据分享】1929-2023年全球站点的逐年平均能见度(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 之前我们分享过1929-2023年全球气象站点的逐年平均气温数据、逐年最高气温数据…

在django中集成markdown文本框

首先需要下载开源组件&#xff1a;http://editor.md.ipandao.com/&#xff0c;可能需要挂梯子。 百度网盘&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1D9o3P8EQDqSqfhAw10kYkw 提取码&#xff1a;eric 1.在html代码中生成一个div&#xff0c;ideditor <div c…

Oracle数据表ID自增操作

一、Oracle ID自增长功能介绍 Oracle数据库默认不支持像 SQLServer、MySQL中的自增长&#xff08;auto increment&#xff09;功能&#xff0c;即自动为每一行记录的自增长字段生成下一个值。 二、Oracle ID自增长方法 第一种&#xff0c;通过序列&#xff08;sequence&#…

蓝桥杯Web应用开发-CSS 基础语法4(字体属性、链接中的伪类、列表样式)

专栏持续更新中 字体属性 字体属性用于定义字体的类型、字号大小、加粗、斜体等方面样式。常用的字体属性如下表所示&#xff1a; 属 性可 取 值描 述fontfont-style、font-variant、font-weight、font-size&#xff08;或 line-height&#xff09;、font-family在一个声明中…

《计算机网络简易速速上手小册》第5章:无线网络和移动通信(2024 最新版)

5.1 WLAN的工作原理 - 揭秘无线局域网络的魔法 5.1.1 基础知识 无线局域网络&#xff08;WLAN&#xff09;允许设备通过无线方式连接到一个局部区域网络&#xff0c;主要基于IEEE 802.11标准&#xff0c;俗称Wi-Fi。WLAN的核心是无线路由器&#xff0c;它不仅充当着网络中各设…

【多模态】27、Vary | 通过扩充图像词汇来提升多模态模型在细粒度感知任务(OCR等)上的效果

论文&#xff1a;Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models 代码&#xff1a;https://github.com/Ucas-HaoranWei/Vary 出处&#xff1a;旷视 时间&#xff1a;2023.12 一、背景 当前流行的大型视觉-语言模型 Large Vision-Language Mode…

挑战杯 python+opencv+深度学习实现二维码识别

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; pythonopencv深度学习实现二维码识别 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;3分 该项目较为新颖&…

探索Gin框架:Golang Gin框架请求参数的获取

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 前言 我们在专栏的前面几篇文章内讲解了Gin框架的路由配置&#xff0c;服务启动等内容。 专栏地址&…

后台弱口令问题

网站的运营管理不能缺少后台管理系统的支持&#xff0c;若能成功进入后台管理系 统&#xff0c;就意味着在Web渗透测试中成功了一大半。进行非授权登录有很多种方法&#xff0c; 这里主要介绍的是弱口令问题&#xff0c;破解弱口令是进入系统的最常见也是最有效的方 法&#xf…

如何在 Java 中通过 Map.Entry 访问 Map 的元素

我们使用 Map.Entry 来遍历 ConcurrentHashMap 的代码片段如下&#xff1a; for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("Key: " entry.getKey() ", Value: " entry.getValue()); } 在 Map.java 中&…

RabbitMQ_00000

MQ的相关概念 RabbitMQ官网地址&#xff1a;https://www.rabbitmq.com RabbitMQ API地址&#xff1a;https://rabbitmq.github.io/rabbitmq-java-client/api/current/ 什么是MQ&#xff1f; MQ(message queue)本质是个队列&#xff0c;FIFO先入先出&#xff0c;只不过队列中…

web前后端小坑记录

游戏服务器过年这段时间忙完了&#xff0c;好久没看web了&#xff0c;重温一下。发现竟然没有文章记录这些修BUG的过程&#xff0c;记录一下。 目录 如何处理F5刷新&#xff1f; 如何处理F5刷新&#xff1f; 后端应该发现路由不存在&#xff0c;直接返回打包好的index.html就…

2024美赛数学建模C题完整论文教学(含十几个处理后数据表格及python代码)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了数学建模美赛本次C题目Momentum in Tennis完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 C论文共49页&…

第6节、T型加减速转动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本章介绍步进电机T型加减速的控制方法&#xff0c;分三个小节&#xff0c;本小节主要内容为该控制方法的推导与计算。目前各平台对该控制方法介绍的文章目前较多&#xff0c;但部分关键参数并未给出推导…

Linux【docker 设置阿里源】

文章目录 一、查看本地docker的镜像配置二、配置阿里镜像三、检查配置 一、查看本地docker的镜像配置 docker info一般没有配置过是不会出现Registry字段的 二、配置阿里镜像 直接执行下面代码即可&#xff0c;安装1.10.0以上版本的Docker客户端都会有/etc/docker 1.建立配置…

在openSUSE-Leap-15.5-DVD-x86_64中使用deepin-wine-8.16再使用微信3.9.7.29

在openSUSE-Leap-15.5-DVD-x86_64中使用deepin-wine-8.16再使用微信3.9.7.29 《在openSUSE-Leap-15.5-DVD-x86_64中使用deepin-wine-6.0.0.62再使用微信3.9.5》 https://blog.csdn.net/weixin_42145772/article/details/135074804?spm1001.2014.3001.5501 按照上面文章的方法…

计算机设计大赛 深度学习 python opencv 实现人脸年龄性别识别

文章目录 0 前言1 项目课题介绍2 关键技术2.1 卷积神经网络2.2 卷积层2.3 池化层2.4 激活函数&#xff1a;2.5 全连接层 3 使用tensorflow中keras模块实现卷积神经网络4 Keras介绍4.1 Keras深度学习模型4.2 Keras中重要的预定义对象4.3 Keras的网络层构造 5 数据集处理训练5.1 …