Centos上安装Harbor并使用

harbor的安装与使用

  • Harbor介绍
  • 安装前的准备工作
  • 为Harbor自签发证书
  • 安装Harbor
    • 安装docker
    • 开启包转发功能和修改内核参数
    • 安装harbor
    • 扩展
  • Harbor 图像化界面使用说明
  • 测试使用harbor私有镜像仓库
  • 从harbor仓库下载镜像

Harbor介绍

容器应用的开发和运行离不开可靠的 镜像管理,并且从安全和效率等方面考虑,部署在私有环境内也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

官网地址:https://github.com/goharbor/harbor

安装前的准备工作

harbor安装环境

操作系统:centos7.9
服务器配置: 4Gib内存/4vCPU/80G硬盘
网络:NAT模式

准备工作

需要提前部署好docker,为后面harbor的使用准备
本次实验将docker部署在了另一个服务器上,docker的部署步骤详见:
https://blog.csdn.net/weixin_40364776/article/details/103787201

配置机器主机名

hostnamectl set-hostname harbor && bash

为Harbor自签发证书

mkdir /data/ssl -p

cd /data/ssl/

生成ca证书

生成一个3072位的key(私钥)

openssl genrsa -out ca.key 3072

在这里插入图片描述

生成一个数字证书ca.pem

  • -new 表示生成一个新的证书请求
  • -x509 表示输出一个X.509证书,而不是一个证书签名请求
  • -days 3650 表示证书的有效期为10年
openssl req -new -x509 -days 3650 -key ca.key -out ca.pem

按箭头前的提示填写城市信息即可,没有箭头标注的直接回车
在这里插入图片描述

生成harbor域名的证书

生成一个3072位的key(私钥)

openssl genrsa -out harbor.key  3072

在这里插入图片描述

生成一个证书请求,一会签发证书时需要的

openssl req -new -key harbor.key -out harbor.csr

按箭头前的提示填写 城市信息主机名 即可,没有箭头标注的直接回车
在这里插入图片描述

签发证书

openssl x509 -req -in harbor.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out harbor.pem -days 3650

显示如下,说明证书签发好了
在这里插入图片描述

安装Harbor

安装docker

关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

在这里插入图片描述

关闭iptables防火墙

安装iptables

yum install iptables-services -y

在这里插入图片描述

禁用iptables

service iptables stop && systemctl disable iptables

清空防火墙规则

iptables -F

关闭selinux

setenforce 0

修改selinux配置文件之后,重启机器,selinux配置才能永久生效

reboot -f

配置时间同步

yum install -y ntp ntpdate

跟网络时间做同步

ntpdate cn.pool.ntp.org

把时间同步做成计划任务

crontab -e

写入:

* */1 * * * /usr/sbin/ntpdate   cn.pool.ntp.org

在这里插入图片描述
重启crond服务使配置生效

systemctl restart crond

配置hosts文件

vi /etc/hosts

加 harbor和 docker 的 IP和访问域名信息
(ps. docker是提前在192.168.40.180主机上部署好的)

192.168.40.180 docker
192.168.40.184 harbor

在这里插入图片描述

安装基础软件包

yum install -y  wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel  python-devel epel-release openssh-server socat  ipvsadm conntrack 

安装docker依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

安装docker-ce

配置docker-ce国内yum源(阿里云)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker-ce

yum install docker-ce -y

启动docker服务

systemctl start docker && systemctl enable docker

systemctl status docker

看到running,表示docker正常运行
在这里插入图片描述
查看Docker 版本信息

docker version 

在这里插入图片描述

开启包转发功能和修改内核参数

内核参数修改:br_netfilter模块用于将桥接流量转发至iptables链,br_netfilter内核参数需要开启转发

modprobe br_netfilter
cat > /etc/sysctl.d/docker.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

使参数生效

 sysctl -p /etc/sysctl.d/docker.conf

在这里插入图片描述

配置docker镜像加速器

修改/etc/docker/daemon.json,变成如下:

vim /etc/docker/daemon.json
{
"registry-mirrors":["https://y8y6vosv.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"]
}

或者

登录docker服务器上,直接远程拷贝docker服务器上的daemon.json文件到harbor服务器上
(本次实验用的这个方式)

scp /etc/docker/daemon.json 192.168.40.184:/etc/docker/

在这里插入图片描述

加载配置 并 重启docker

systemctl daemon-reload && systemctl restart docker

安装harbor

创建安装目录

mkdir /data/install -p

cd /data/install/

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

离线包放在了网盘里可自取:
链接: https://pan.baidu.com/s/13ayH_6RVqBZVIUj7GMVp-A?pwd=s6gt
提取码: s6gt
在这里插入图片描述

下载harbor离线包的地址: https://github.com/goharbor/harbor/releases/tag/

解压

tar zxvf harbor-offline-installer-v2.3.0-rc3.tgz

cd harbor

cp harbor.yml.tmpl harbor.yml

修改配置文件

vim harbor.yml
hostname:  harbor  
#修改hostname,跟上面签发的证书域名保持一致
#协议用https
certificate: /data/ssl/harbor.pem
private_key: /data/ssl/harbor.key

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

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

安装docker-compose

上传网盘里提供的 docker-compose-Linux-x86_64 文件到 harbor服务器上

mv docker-compose-Linux-x86_64.64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose

注: docker-compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose的工程配置文件默认为docker-compose.yml,Docker-Compose运行目录下的必要有一个docker-compose.yml。docker-compose可以管理多个docker实例。

安装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

看到下面内容,说明安装成功
在这里插入图片描述

在自己电脑修改hosts文件(实现本地用域名访问harbor)
在这里插入图片描述
在hosts文件添加如下一行,然后保存即可
192.168.40.184 harbor

扩展

如何停掉harbor

cd /data/install/harbor
docker-compose stop 

如何启动harbor

cd /data/install/harbor
docker-compose start

Harbor 图像化界面使用说明

在浏览器输入:https://harbor
在这里插入图片描述

接收风险并继续,出现如下界面,说明访问正常
在这里插入图片描述

账号:admin
密码:Harbor12345
输入账号密码出现如下:
所有基础镜像都会放在library里面,这是一个公开的镜像仓库
在这里插入图片描述

新建项目->起个项目名字dev(把访问级别公开那个选中,让项目才可以被公开使用)
在这里插入图片描述
在这里插入图片描述

测试使用harbor私有镜像仓库

打开部署docker的服务器
在这里插入图片描述

配置hosts文件

vim /etc/hosts

加 harbor和 docker 的信息(ps. docker是提前在192.168.40.180主机上部署好的)

192.168.40.180 docker
192.168.40.184 harbor

在这里插入图片描述

修改docker配置

vim /etc/docker/daemon.json

配置新增加了一行内容如下:“insecure-registries”:[“192.168.40.184”]

增加的内容表示内网访问harbor的时候走的是 http,192.168.40.184是安装harbor机器的 IP

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

修改配置之后使配置生效

systemctl daemon-reload && systemctl restart docker

查看docker是否启动成功

systemctl status docker

在这里插入图片描述

登录harbor

docker login 192.168.40.184

Username:admin
Password: Harbor12345

输入账号密码之后看到如下,说明登录成功了
在这里插入图片描述

上传本地镜像

实验:把本地tomcat镜像上传到harbor里

把本地tomcat镜像重打标签

docker tag tomcat:latest  192.168.40.184/dev/tomcat:v1

在这里插入图片描述

把【192.168.40.184/dev/tomcat:v1】上传到harbor里的dev项目下

docker push 192.168.40.184/dev/tomcat:v1

在这里插入图片描述
在这里插入图片描述

从harbor仓库下载镜像

实验:先在docker服务器上删除【tomcat:v1】镜像,从harbor上拉取

docker rmi -f 192.168.40.184/dev/tomcat:v1
docker pull 192.168.40.184/dev/tomcat:v1

在这里插入图片描述

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

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

相关文章

探索超净实验室:高纯电子级PFA洗瓶特氟龙材质清洗瓶的特性

PFA洗瓶&#xff0c;实验中常用的清洗工具之一&#xff0c;是一个带有弯曲管状喷嘴的柔性瓶子&#xff0c;因此可以用手挤压瓶身以产生压力&#xff0c;迫使瓶内液体通过塑料管以单滴或窄流的形式流到需要清洁的表面。 ​ 由于需要多次挤压&#xff0c;瓶体要有良好的回弹性和…

动态规划——斐波那契问题(Java)

目录 什么是动态规划&#xff1f; 练习 练习1&#xff1a;斐波那契数 练习2&#xff1a;三步问题 练习3&#xff1a;使用最小花费爬楼梯 练习4&#xff1a;解码方法 什么是动态规划&#xff1f; 动态规划&#xff08;Dynamic Programming&#xff0c;DP&#xff09;&…

关于VS项目无法找到源文件或者,代码更改项目却不更改的问题

Studio\workShop\......\obj\Debug\net6.0\GraduationProjectEX.Shared.AssemblyInfo.cs”。 像上面这个&#xff0c;说无法找到源文件&#xff0c;然后我去目录找&#xff0c;果然是没有的&#xff0c;我的是依赖方面的错误&#xff0c;莫名其妙&#xff0c;因为我更改了项目…

超快的 AI 实时语音转文字,比 OpenAI 的 Whisper 快4倍 -- 开源项目 Faster Whisper

faster-whisper 这个项目是基于 OpenAI whisper 的模型&#xff0c;在上面的一个重写。 使用的是 CTranslate2 的这样的一个库&#xff0c;CTranslate2 是用于 Transformer 模型的一个快速推理引擎。 在相同精度的情况下&#xff0c;faster-whisper 的速度比 OpenAI whisper …

鸿蒙Harmony应用开发—ArkTS-if/else:条件渲染

ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态&#xff0c;使用if、else和else if渲染对应状态下的UI内容。 说明&#xff1a; 从API version 9开始&#xff0c;该接口支持在ArkTS卡片中使用。 使用规则 支持if、else和else if语句。 if、else if后跟随的条件语句…

心脏滴血漏洞详解(CVE-2014-0160)

参考链接&#xff1a;心脏滴血漏洞利用&#xff08;CVE-2014-0160&#xff09;_cve-2014-0160漏洞禁用443端口-CSDN博客 目录 OpenSSL简介 漏洞原理 影响版本 漏洞复现 漏洞利用 修复方案 OpenSSL简介 OpenSSL是一个开放源代码的软件库包&#xff0c;提供了一组加密和认…

【leetcode热题】 位1的个数

编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 1 的个数&#xff08;也被称为汉明重量&#xff09;。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff08;如 Java&#xff09;中…

【算法】回溯与深搜

方法论 1.构建决策树 2.设计代码&#xff1a;全局变量、dfs函数 3.剪枝&#xff0c;回溯 全排列 给定一个不含重复数字的整数数组 nums &#xff0c;返回其 所有可能的全排列 。可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff…

探索超融合服务器:是否助力企业飞跃数字化挑战?

在数字化不断深化的今天&#xff0c;企业面临着前所未有的转型压力和机遇。IT基础设施作为支撑企业运营的重要基石&#xff0c;其性能、效率及可管理性都直接关系到企业的竞争力。超融合服务器作为一种创新的IT架构&#xff0c;被许多业内专家视为应对现代业务挑战的有效手段。…

移动硬盘变NTFS无法访问:原因分析与数据恢复全攻略

一、遭遇困境&#xff1a;移动硬盘变NTFS打不开 在日常的数据存储与传输中&#xff0c;移动硬盘无疑是我们的得力助手。然而&#xff0c;当移动硬盘突然显示NTFS格式且无法打开时&#xff0c;这无疑给我们带来了巨大的困扰。面对这种突发情况&#xff0c;许多用户会感到焦虑和…

⾃定义类型:结构体

目录 1. 结构体类型的声明 1.1 结构体回顾 1.1.1 结构的声明 1.1.2 结构体变量的创建和初始化 1.2 结构的特殊声明 1.3 结构的⾃引⽤ 2. 结构体内存对⻬ 2.1 对⻬规则 2.2 为什么存在内存对⻬? 2.3 修改默认对⻬数 3. 结构体传参 4. 结构体实现位段 4.1 什么是位段…

二进制王国(蓝桥杯备赛)【sort/cmp的灵活应用】

二进制王国 题目链接 https://www.lanqiao.cn/problems/17035/learning/?contest_id177 题目描述 思路 这里就要灵活理解字典序排列&#xff0c;虽然string内置可以直接比较字符串字典序&#xff0c;但是在拼接时比较特殊&#xff0c;比如 11的字典序小于110&#xff0c;但…

故障诊断模型 | 基于图卷积网络的轴承故障诊断

文章目录 文章概述模型描述模型描述参考资料文章概述 故障诊断模型 | 基于图卷积网络的轴承故障诊断 模型描述 针对基于图卷积网络(GCN)的故障诊断方法大多默认节点间的权重相同、导致诊断精度较低与鲁棒性较差的问题,提出了一种基于欧式距离和余弦距离的 GCN 故障诊断方法…

HCIP实验02

实验步骤 1、R1和R2使用ppp链路之连&#xff0c;R2和R3把2条ppp链路捆绑为ppp直连 [R2]int Mp-group 0/0/0 [R2]int Serial 3/0/1 [R2-Serial3/0/1]ppp mp Mp-group 0/0/0 [R2-Serial3/0/1]int Serial 4/0/0 [R2-Serial4/0/0]ppp mp Mp-group 0/0/0 [R3]int Mp-group 0/0/…

代码随想录算法训练营 DAY 17 | 110.平衡二叉树 257.二叉树的所有路径 404.左叶子之和

110.平衡二叉树 平衡二叉树的定义&#xff1a;任何节点的左右子树高度差绝对值不超过1 空树也是AVL! 确定遍历顺序&#xff1a; 求高度用后序&#xff0c;求深度用前序。&#xff08;取决于需不需要从下往上返回结果&#xff09; 先判断它是不是平衡二叉树 如果是就返回 如…

MT2191 整数大小比较(高精度)

给出两个正整数&#xff0c;判断他们的大小。 输入格式&#xff1a; 两个正整数。 输出格式&#xff1a; 若前者大&#xff0c;输出>&#xff1b; 若后者大&#xff0c;输出<&#xff1b; 若一样大&#xff0c;输出。 输入&#xff1a; 1412894619244619891 23762842…

G1垃圾回收器深入探索——卡表、记忆集和SATB算法

G1垃圾回收器&#xff0c;我们常常会提到里面的分区和垃圾回收算法&#xff0c;这次我们撇开表层&#xff0c;仔细看看里面的三个核心组成部分及其原理。 Card Table&#xff08;卡表&#xff09; 在进行YoungGC时&#xff0c;我们会判断一个对象是否被引用&#xff0c;但这个过…

软考复习笔记day3(计算机体系结构和指令系统基础)(精简版)

计算机体系结构分类 处理机数量分类&#xff1a; 单处理&#xff08;一个处理单元&#xff09;并行处理系统&#xff08;两个以上处理机互联&#xff09;.分布式处理系统 Flynn分类&#xff1a;&#xff08;常考&#xff09; 以指令流和数据流进行区别 指令流由控制部分进…

Keepalive与idle监测及性能优化

Keepalive 与 idle监测 Keepalive&#xff08;保活&#xff09;: Keepalive 是一种机制&#xff0c;通常用于TCP/IP网络。它的目的是确保连接双方都知道对方仍然存在并且连接是活动的。这是通过定期发送控制消息&#xff08;称为keepalive消息&#xff09;实现的。如果在预定时…

使用aop做权限控制

1、pom.xml文件内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:/…