Harbor私有镜像仓库

Docker私有仓库Harbor

​ 前面学习了Docker及Dockerfile构建镜像,那么构建的镜像放在哪里才能被Docker容器快速获取到呢?我们知道,可以把镜像放入Docker Hub镜像仓库,但是Docker Hub是国外网站,一方面镜像放在Docker Hub不安全,另一方面从Docker Hub下载镜像比较慢,尽管可以配置Docker Hub镜像加速器,但是速度最快只能到10m/s。因此,将镜像放入私有仓库是一种更好的做法。

Harbor概念及证书签发

​ Harbor是一个企业级的容器镜像仓库,它提供了镜像的存储、管理、分发、安全扫描等一系列功能。企业可以轻松管理和创建自己的私有仓库,可以自定义访问控制、镜像复制和同步等策略,使之安全高效。

​ Harbor作为优秀的私有镜像仓库,被很多企业和个人使用,Harbor提供了有好的UI界面,我们访问Harbor UI界面时可以通过HTTP和HTTPS的方式访问,一般为了安全性都是HTTPS访问,如何通过HTTPS访问?在实际应用中,我们可以通过购买CA证书,或通过自签发证书来实现HTTPS方式的访问。

自签发证书是相对简单的一种方式,我们通过OpenSSL生成自签发证书

  • 创建存放证书的目录
mkdir /data/ssl -p
cd /data/ssl
  • 生成CA证书

CA(Certificate Authority)是数字证书的签发机构,我们需要生成一个CA证书来签署服务器证书。

openssl genrsa -out ca.key 3072
openssl req -new -x509 -days 3650 -key ca.key -out ca.pem

这个命令会使用OpenSSL命令工具生成一个长度为3072位的RSA私钥文件ca.key和一个自签名的X.509证书ca.pem,有效期10年。生成过程中,需要按照提示输入证书的相关信息,如国家、省份、城市、单位名等,也可以直接回车默认。

在这里插入图片描述

生成服务器证书

该证书用于对客户端的HTTPS请求进行响应。生成服务器证书:

  • 创建一个服务器证书的私钥文件server.key
openssl genrsa -out server.key 3072
  • 创建一个证书签名请求,(Certificate Signing Request, CSR)文件,server.csr,该文件包含需要在证书中包含的信息:
openssl req -new -key server.key -out server.csr

生成CSR过程中,同样需要填写相关信息。

在这里插入图片描述

  • 最后,使用之前生成的CA证书ca.pem对服务器证书进行签名,生成最终的服务器证书server.crt:
openssl x509 -req -days 3650 -in server.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out server.crt

​ 这个命令会使用OpenSSL工具生成一个自签名的X.509数字证书server.crt,有效期10年。生成证书过程中,需要输入CA证书的密码,按照提示输入即可。

完成上述步骤,就可以用HTTPS访问Harbor UI界面了。需要注意的是:在使用自签发证书的情况下,浏览器会显示证书不受信任,需要手动添加证书信任才能正常访问。

安装Harbor

准备harbor

  • 创建安装目录
mkdir /data/install -p
cd /data/install
  • Harbor离线包harbor-offline-installer-v2.3.0-rc3.tgz上传到/data/ssl目录

  • 解压Harbor离线包

tar -zxvf harbor-offline-installer-v2.3.0-rc3.tgz
  • 修改Harbor配置文件
cd harbor # 到harbor目录下
cp harbor.yml.tmpl harbor.yml # 拷贝一份文件更名为harbor.yml
vim harbor.yml 	# 修改配置
hostname: harbor # 用于访问用户界面和harbor服务。它应该是目标机器的IP地址或域名不要使用localhost或127.0.0.1为主机名,这里和上面签发的服务器证书中的域名一致就行
certificate: /data/ssl/ca.pem	# harbor的根证书,只有开启HTTPS才用到
private_key: /data/ssl/ca.key	# harbor的私钥,开启HTTPS才用到

Harbor默认的账号和密码:admin/Harbor12345

安装Docker compose

Docker-compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。安装Harbor是通过Docker-compose命令实现的,可以通过以下方法安装Docker-compose

docker-compose-Linux-x86_64.64离线文件上传到/data/install目录下,把文件复制到/usr/bin目录下,重命名为docker-compose

mv docker-compose-Linux-x86_64.64 /usr/bin/docker-compose
  • 赋予docker-compose执行权限
chmod +x /usr/bin/docker-compose

docker-compose工程配置文件默认为docker-compose.yml文件,docker-compose运行目录下必须有docker-compose.yml文件。docker-compose可以管理多个docker的实例

安装Harbor

  • 执行安装脚本
cd /data/install/harbor
./install.sh

会去拉取下载很多镜像,时间可能比较长,耐心等待…

在这里插入图片描述

这样就成功了。客户端若想通过域名访问自己的harbor可以在电脑的hosts文件中设置

xxx.xxx.xxx.xxx harbor
  • 若要停止并删除由docker-compose命令启动的harbor服务
cd /data/install/harbor # 因为这个目录下有docker-compose.yml文件,所以在这个目录下面运行
docker-compose down

命令会:

  • 停止容器
  • 删除所有已经停止的容器
  • 删除所有与服务相关的网络(除非是external指令定义的外部网络)
  • 删除所有与服务关联的匿名和命名卷

需要注意的是:docker-compose down不会删除镜像或构建的缓存

  • 启动harbor
cd /data/install/harbor
docker-compose up -d

Harbor界面使用

直接访问harbor私有库的ip地址即可,选择信任继续访问,输入账号密码

在这里插入图片描述

页面如下:

在这里插入图片描述

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

我们创建一个自己的镜像仓库来使用,也选择公开,公开后其他人命令行访问这个仓库时是不需要进行身份认证的,请留意

在这里插入图片描述

测试使用harbor私有库

要使用Harbor私有镜像仓库,需要docker login登录Harbor,默认是基于HTTPS的,若使用HTTPS,那么还需要配置客户端的证书,若不使用HTTPS而是使用HTTP,可以增加insecure-registries字段,若Docker客户端添加了insecure-registries配置,就不需要在Docker客户端配置对应的证书。

修改Docker配置

  • vim编辑daemon.json文件
vim /etc/docker/daemon.json
  • daemon.json默认是不存在的,需要自己创建,写入内容如下
{
    "insecure-registries": ["192.168.40.181","harbor"]
}

192.168.40.181:是Harbor机器的ip

harbor是192.168.40.181对应的主机名

  • 设置hosts
vim /etc/hosts
# 内容如下
192.168.40.181  harbor
  • 重启服务使生效
systemctl daemon-reload && systemctl restart docker

登录Harbor

docker login xxx.xxx.xxx.xx

输入账号密码,默认admin/Harbor12345,出现Login Succeeded,说明登录成功。

测试上传镜像到Harbor私有仓库

  • 先去Docker Hub下载Tomcat镜像作为测试镜像。
docker pull tomcat
  • 给镜像打标签
docker tag tomcat:latest ip地址或域名/test/tomcat:v1

相当于给镜像起名字,tomcat:latest表明给这个镜像打标签。

ip地址或域名表示指定仓库地址(不写默认是Docker Hub的地址)

/test/tomcat:是这个镜像在harbor中的命名空间和仓库名,v1是版本号。

  • push推送到仓库
docker push xxx.xxx.xx.xxx/test/tomcat:v1

推送完毕后如图。

在这里插入图片描述

  • 从私有库拉取镜像
docker pull xxx.xxx.xxx.xxx/test/tomcat:v1

在这里插入图片描述

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

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

相关文章

童年女神大盘点:谁是第一个让你心动的动漫女神?

每当提起我们的童年记忆,总有一抹亮丽的色彩来自于那些国产动漫中的女性角色,她们以其独特的魅力、鲜明的性格和卓越的才智,深深地烙印在了我们的心底,成为了一代人的集体回忆。今天,让我们一同回首,盘点那…

napi系列学习进阶篇——NAPI异步调用

简介 OpenHarmony Napi 标准系统异步接口实现支持Callback方式和Promise方式。标准系统异步接口实现规范要求,若引擎开启Promise特性支持,则异步方法必须同时支持Callback方式和Promise方式。使用哪种方式由应用开发者决定,通过是否传递Call…

全新4.0版本圈子社交论坛系统 ,可打包小程序,于TP6+uni-app 全开源 可打包小程序app uniapp前端+全开源+独立版

简述 首先 圈子系统的核心是基于共同的兴趣或爱好将用户聚集在一起,这种设计使得用户能够迅速找到与自己有共同话题和兴趣的人。 其次 圈子系统提供了丰富的社交功能,如发帖、建圈子、发活动等,并且支持小程序授权登录、H5和APP等多种形式…

R语言记录过程

如何使用这个函数as.peakData 函数构造过程 出现问题是缺少函数的问题 up不告诉我,这里是代表c,h,o的值,你从里面获取把值,设置成c,h,o就可以了 现在开始测试参数 第一次 startRow : 开始查找数据的第一行。不管startRow的值是多少&#xff…

openstack-镜像服务 3

Glance镜像服务 创建glacnce数据库 创建glance用户并创建服务实体及api端点 安装glance软件包 修改配置文件 同步到数据库 设置开机自启并查看日志目录 使用测试镜像验证服务

10分钟带你学会配置DNS服务正反向解析

正向解析 服务端IP客户端IP网址192.168.160.134192.168.160.135www.openlab.com 一、首先做准备工作: 关闭安全软件,关闭防火墙,下载bind软件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootserver ~]# y…

LeetCode题练习与总结:最小路径和--64

一、题目描述 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid [[1,3,1],[1,5,1],[4,2,1]] 输出…

超级详细的JDBC和数据库连接池讲解

文章目录 JDBC简介概念本质好处 JDBC快速入门JDBC中API详解DriverManager驱动管理类作用注册驱动获取连接 Connection数据库连接对象作用获取执行SQL的对象事务管理 Statement作用执行SQL语句 ResultSet原理使用步骤 PreparedStatementSQL注入获取对象操作步骤 原理好处 JDBC工…

项目管理-项目问题及需求解决要点

综上所述:在项目管理过程中,项目问题和需求逐渐增多,要不断的适应项目的种种,要想到如果没有问题要解决了,你的价值体现在哪里?要这样想,风险也是机会,所以问题等等也是自己的机会&a…

CopyTranslator下载地址及安装教程

CopyTranslator是一款免费且开源的机器翻译工具,旨在提供快速、便捷的翻译服务。它采用了先进的神经网络机器翻译技术,能够提供准确、流畅的翻译结果。 CopyTranslator的特点和功能如下: 多语言翻译:支持多种常见的语言对&#…

Unity让地图素材遮挡人物

点击编辑/项目设置/图形,透明度排序模式设置自定义轴,透明度排序轴Y设置为1其他为0。 此时人物和地图素材的图层排序相等,当人物的高度大于地图素材时,人物则被遮挡。

【零基础学数据结构】双向链表

1.双向链表的概念 1.1头节点 1.2带头双向循环链表 注意: 哨兵位创建后,首尾连接自己 1.3双链表的初始化 // 双向链表的初始化 void ListInit(ListNode** pphead) {// 给双链表创建一个哨兵位*pphead ListBuyNode(-1); } 2.双向链表的打印 // 双向…

Qlik在数据隐私计划中利用人工智能和分析

在技术快速变革的时代,政府正在努力追赶技术发展和我们日常生活中产生的个人身份信息(“PII”)数量不断增加的步伐。规范 PII 使用的隐私法不断加强(Gartner估计,虽然到 2020 年,全面的隐私法将覆盖全球 10…

2024年广东省网络系统管理样题第1套网络搭建部分

2024年广东省职业院校技能大赛样题1 信息安全管理与评估 网络系统管理 网络搭建与应用 云计算 软件测试 移动应用开发 任务书,赛题,解析等资料,知识点培训服务 添加博主wx:liuliu5488233 网络系统管理赛项 模块A:网络…

Unity给地图物体添加对撞机

在项目/Assets下创建Prefabs文件夹 选择素材拖入层级下,注意此时地图素材有可能看不到,此时选择Tilemap在检查器中修改图层顺序调至最低。 添加对撞机 选择素材,在检查器中点击添加组件Box Collider 2D,将素材拖入Prefabs文件下…

C++ - 二叉搜索树的基本实现

目录 0. 引言 1. 二叉搜索树 1.1 定义 1.2 特点 2. 二叉搜索树的实现 2.1 基本框架 2.2 查找 2.3 插入 2.4 删除 2.4.1 右子树为空 2.4.2 左子树为空 2.4.3 左右都不为空 2.4.4 代码 0. 引言 在C语言数据结构中,我们已经基本了解过二叉树&#xff…

04异常Lambda算法正则

异常 异常是什么? 异常是代码在编译或者执行的过程中可能出现的错误。避免异常的出现,同时处理可能出现的异常,让代码更稳健。 异常分为几类? 编译时异常、运行时异常。编译时异常:没有继承RuntimeExcpetion的异常…

GB/T 28181标准中的错误码,国标28181中可能出现的SIP协议相关的错误码及其含义

目录 一、GB/T 28181标准介绍 (一)概述 (二)关键内容和特点 1. 系统架构: 2. 设备接入: 3. 网络通信: 4. 业务功能: 5. 安全保护: 6. 平台管理: &a…

MATLAB 构建协方差矩阵,解算特征值和特征向量(63)

MATLAB 局部点云构建协方差矩阵,解算特征值和特征向量(63) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 对于某片有待分析的点云,我们希望构建协方差矩阵,计算特征值和特征向量,这是很多算法必要的分析方法,这里提供完整的计算代码(验证正确) !!! 特别需要注意…

03-JAVA设计模式-责任链模式

责任链模式 什么是责任链模式 责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,允许你将请求沿着处理者链进行传递。每个处理者均对请求进行某些处理,并可决定是否将请求沿着链传递下去。这种模式给予请求的处理…