centos搭建docker镜像Harbor仓库的简明方法

news2024/11/28 22:45:06

在kubernetes集群中如果要部署springcloud这样的应用,就必须有一个自建的docker镜像中心仓库。

它的目的有两点: 1. 镜像拉取速度快  2. 开发好维护

而Harbor是一个非常好用的docker本地仓库

所以本篇文章来讲讲如何在部署Harbor仓库

首先系统版本最低要求:

System requirements:

On a Linux host: docker 17.06.0-ce+ and docker-compose 1.18.0+ .

 也就是docker版本要大于17.06.0-ce+ , docker-compose版本要大于 1.18.0+ 。

否则没法安装。

docker升级方法: 

先卸载:

yum remove docker \
                 docker-client \                   

                  docker-client-latest \
                  docker-common \
                   docker-latest \
                   docker-latest-logrotate \
                   docker-logrotate \
                   docker-engine
 

再重新安装

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin

 docker-compose最好通过pip安装(这样能自动解决依赖问题)

python3通常会自带pip, 如果是python 2, 则这样安装pip

wget https://bootstrap.pypa.io/pip/2.7/get-pip.py

python get-pip.py

然后pip安装 docker-compose

pip install docker-compose

 这些重要依赖安装以后,然后到harbor官网下载安装包:Releases · goharbor/harbor · GitHub

 

 下载harbor安装包

 proxychains4 wget https://github.com/goharbor/harbor/releases/download/v2.9.1/harbor-offline-installer-v2.9.1.tgz  

// 注意:我这里使用了proxychains4加速下载,具体用法可以自行搜索

 然后解压安装包:

tar -xvf harbor-offline-installer-v2.9.1.tgz

 进入安装目录

cd harbor

 生成自建ssl证书:

#创建证书目录

mkdir sslcert 

cd sslcert

#执行创建证书脚本

./gencert.sh

 以下是创建证书脚本的内容

#!/bin/bash
domain="registry.myharbor.com"  # 此处写harbor仓库的自定义域名
rm -f ca*  ${domain}.* full_chain*
echo "开始生成证书------------"
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key \
  -subj "/C=TW/ST=Taibei/L=Taibei/O=mycom/OU=Personal/CN=MyCA" \
  -x509 -days 36500 -out ca.crt

openssl req -newkey rsa:4096 -nodes -sha256 -keyout ${domain}.key \
  -subj "/C=TW/ST=Taibei/L=Taibei/O=mycom/OU=Personal/CN=${domain}" \
  -out ${domain}.csr

openssl x509 -req -in ${domain}.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out ${domain}.crt -days 36500

鉴于docker信任自建证书的方法没什么卵用,所以这里就不再拷贝证书到/etc/docker/certs.d/域名目录了,因为确实没有什么鸟用。

然后修改harbor.yml.tmpl文件

 然后修改该文件的下面三处内容:

1. harbor仓库域名

2. 指定自建http证书和key的路径

3. 指定harbor仓库的管理员密码(docker push的时候会用到)


 然后把harbor.yml.tmpl重命名为harbor.yml,

 cp harbor.yml.tmpl harbor.yml

 记住:这一步很重要,否则后面会报错:no config file: /opt/harbor/harbor.yml

 然后开始安装harbor:

./install.sh

 至此harbor仓库安装完成,此时harbor仓库已经启动。

可以通过自定义域名访问harbor仓库:

 注意:因为harbor是通过docker-compose管理的,所以以下是docker-compose管理harbor的命令

// 切换到harbor的安装目录

docker-compose up -d  // 启动harbor并在后台运行 (harbor没有启动时候执行该命令)

docker-compose down // 删除所有harbor容器

docker-compose restart // 重启所以harbor容器

docker-compose stop   // 停止所有harbor容器

docker-compose start // 启动所以已停止的harbor容器

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

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

相关文章

tegra nvidia agx xaiver 系统开机自动启动风扇配置方法

确保系统可以连接到互联网!!!!!! 1.更新系统软件源: sudo apt-get update2.安装pip工具 sudo apt-get install python-pip3.安装nvidia对应工具 sudo -H pip install jetson-stats4.打开NVI…

华为eNSP综合实验考试

VLAN信息表 设备名称 端口 链路类型 VLAN 参数 HZ-HZCampus-Agg01-S5731 GE0/0/1 Trunk PVID:1 Allow-pass:10 20 Eth-trunk1(GE0/0/2,0/0/3,0/0/23) Trunk PVID:1 Allow-pass:10 20 GE0/0/24 Access PVID&#xf…

Leetcode 33 搜索旋转排序数组

class Solution {//旋转数组从中间分开&#xff0c;总有一侧是有序的&#xff0c;一侧是无序的//只需要判断是否在有序区间就可以进行二分查找public int search(int[] nums, int target) {int left 0, right nums.length - 1;while(left < right){int mid (left right)…

小红书直播开启新纪元,拓世法宝AI直播一体机助您轻松成为行业标杆!

2023年&#xff0c;小红书终于成功坐上了电商牌桌。 今年3月的“董洁效应”带动了一批品牌商家、博主入驻小红书试水&#xff0c;其直播业务积蓄了巨大势能。10月15日&#xff0c;“初代名媛”章小蕙完成了在小红书的第二场直播&#xff0c;以销售额破亿的成绩打响了小红书双1…

Chrome开发者模式去除时间轴

经常用chrome调试&#xff0c;发现时间轴用的不多&#xff0c;想屏蔽掉。 参考&#xff1a;滑动验证页面 我做了截图记录下

众安保险面试题

文章目录 1.说一下Java内存模型?2.List、Set、Map的区别?3.介绍一下设计模式?4.MySQL存储结构?5.索引失效的场景?6.为什么使用函数索引会失效?7.Spring事务有哪两种?7.1 编程式事务@RestController7.2 声明式事务8.@Transactional实现原理?9.事务如何合并@Transactiona…

卡码网语言基础课 | 12. 位置互换

通过本次练习&#xff0c;将要学习到以下C知识点&#xff1a; 位置互换交换变量字符串 题目&#xff1a;给定一个长度为偶数位的字符串&#xff0c;请编程实现字符串的奇偶位互换。 奇偶位互换是指字符串的奇数位和偶数位相互交换位置 即&#xff1a;第一位和第二位交换&…

服装供应链管理的革新利器—超高频RFID技术

一、行业概述 服装行业一直被视为低技术含量的劳动密集型产业&#xff0c;但实际上&#xff0c;科学技术在整个行业的发展中起着至关重要的作用&#xff0c;从服装面料的制作到服装设计、生产制作、物流到终端销售&#xff0c;科技力量贯穿于每一个环节。然而&#xff0c;传统…

城市生命线丨城市燃气管网监测系统功能效果

11月6日&#xff0c;福建泉州某小区发生煤气闪爆导致1死三伤&#xff0c;这起事故再次为我们敲响了城市燃气管网安全监测的警钟。在城市生命线的建设中&#xff0c;城市燃气管网监测系统以其独特的作用和价值&#xff0c;成为保障城市安全的重要一环。 根据应急管理部《全国城镇…

Flex布局---看一篇就够了

1. flex布局是什么&#xff1f; flex是flexible Box的缩写&#xff0c;用来为盒装模型提供的最大的灵活性&#xff0c;任何一个容器都可以指定为flex布局。Flex布局称为flex容器&#xff0c;所有的子元素为容器成员Flex项目&#xff08;flex item&#xff09;&#xff1b; 当为…

ES7升级、jar包升级、工具类封装,代码改造

一、spring-data-elasticsearch 引入es版本适配 二、jar升级 在项目工程根pom.xml文件中增加maven依赖管理在这里插入图片描述 <properties><elasticsearch.spring.version>4.2.0</elasticsearch.spring.version><elasticsearch.version>7.12.0</e…

JS-项目实战-更新水果单价更新小计更新总计

1、fruit.js //当页面加载完成后执行后面的匿名函数 window.onload function () {//get:获取 Element:元素 By:通过...方式//getElementById()根据id值获取某元素let fruitTbl document.getElementById("fruit_tbl");//table.rows:获取这个表格的所有的行&a…

echarts点击事件、柱状图设置区间颜色

实现echarts柱状图标记区域&#xff0c;并在单击柱状条时触发点击事件切换标记区域 //html <div id"main" style"width: 600px;height:400px;"></div>//js let _chart null; letselectInfo {};//选择的柱状条信息&#xff0c;可用于信息的获…

【iDRAC】突破错误信息壁垒,利用iDRAC提高效率

序 面对旧服务器上的黄色警示灯&#xff0c;工作人员往往陷入困惑。更糟糕的是&#xff0c;如果该服务器转手多次&#xff0c;缺少root用户密码和IP地址&#xff0c;那么要访问服务器iDRAC就更困难了。但是出现问题的硬件蕴含着重要信息&#xff0c;为了解开这个谜团&#xff…

Linux Docker图形化工具Portainer如何进行远程访问?

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 Portainer 是一个轻量级的容器管理工具&#xff0c;可以通过 Web 界面对 Docker 容器进行管理和监控。它提供了可…

【教3妹学编程-算法题】最大化数组末位元素的最少操作次数

3妹&#xff1a;“太阳当空照&#xff0c;花儿对我笑&#xff0c;小鸟说早早早&#xff0c;你为什么背上炸药包” 2哥 :3妹&#xff0c;什么事呀这么开发。 3妹&#xff1a;2哥你看今天的天气多好啊&#xff0c;阳光明媚、万里无云、秋高气爽&#xff0c;适合秋游。 2哥&#x…

群晖7.2版本套件安装CloudDriver2

CloudDrive是一个强大的多云盘管理工具&#xff0c;为用户提供包含云盘本地挂载的一站式的多云盘解决方案。挂载到本地后&#xff0c;可以像本地文件一样进行操作。 一、套件库添加矿神源 二、安装CloudDriver2 1、搜索安装 搜索框输入【clouddrive】&#xff0c;搜索到Clou…

汽车 CAN\CANFD数据记录仪

CAN FD数据记录仪解决汽车电子数据记录与偶发性故障查找问题。 1、脱机离线记录两路CAN/CANFD通道数据 脱机离线记录两路CAN/CANFD通道数据&#xff0c;可记录6个月数据。每个通 道单独设置触发记录模式、触发前预记录报文个数&#xff08;默认1000帧&#xff09;及 过滤规则&a…

spring中的DI

【知识要点】 控制反转&#xff08;IOC&#xff09;将对象的创建权限交给第三方模块完成&#xff0c;第三方模块需要将创建好的对象&#xff0c;以某种合适的方式交给引用对象去使用&#xff0c;这个过程称为依赖注入&#xff08;DI&#xff09;。如&#xff1a;A对象如果需要…