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

在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.crtopenssl req -newkey rsa:4096 -nodes -sha256 -keyout ${domain}.key \-subj "/C=TW/ST=Taibei/L=Taibei/O=mycom/OU=Personal/CN=${domain}" \-out ${domain}.csropenssl 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.mzph.cn/news/144463.shtml

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

相关文章

前端实现RSA非对称加密及生成RSA公私密钥

前端实现RSA非对称加密 RSA简介安装jsencryptRSA加密RSA解密如何生成公私秘钥(windows) RSA简介 RSA用于保密性时,就是公钥加密,私钥解密。 因为公钥是可以公开了, 那么任何人都可以使用公钥对信息进行加密&#xff0…

Python 获取当前容器 CPU 负载和内存

Python 获取当前容器 CPU 负载和内存 引言 在容器化的环境中,了解容器的 CPU 负载和内存使用情况是非常重要的。本文将教会你如何使用 Python 来获取当前容器的 CPU 负载和内存使用情况。 整体流程 以下是获取当前容器 CPU 负载和内存的整体流程: jour…

npm封装插件打包上传后图片资源错误

问题: npm封装插件:封装的组件页面涉及使用图片资源,在封装的项目里调用图片显示正常;但是打包上传后,其他项目引入使用报错找不到图片资源;图片路径也不对 获取图片的base64方法 解决方案: 将…

一个合格的软件测试工程师该如何提升自己

作为一名软件测试工程师,如何提升自己的核心竞争力?如何提高自己的专业水平? 一、持续挑战自我 没有挑战,便不会进步。每月给自己一个小目标,每季度一个大目标;比如,从纯手工测试到专项测试的转…

新手小白看过来——带你快速入门跨境电商

近几年来,国内外贸交易是越来越火爆,其中跨境电商成为了2023年的热门风口行业,尽管现在做跨境电商的从业者有很多,但仍然有许多0基础小白想通过跨境电商获取人生的第一桶金,那么新手应该如何在跨境电商领域取得成功呢&…

【博客系统】 一

该博客系统基于servlet和mysql数据库 , 并且通过xshell终端工具部署至云服务器. 实现的功能包括: 1.博客列表页 2.博客详情页 3.登陆页面 4.强制登陆检查 5.获取用户信息 6.退出登陆 7.发布博客 一.系统展示 登陆页面 博客列表页 博客详情页 博客编辑页 下面就开始编写代码了.…

WPF位图效果

Windows Presentation Foundation (WPF) 提供了许多位图效果,可以让你创建复杂的图形和动画。这些效果包括,但不限于以下几种: 模糊效果 (BlurEffect):这一效果可以使图像模糊,你可以设置模糊半径来控制模糊程度。投影…

react+video.js h5自定义视频暂停图标

目录 参考网址 效果图,暂停时显示暂停图标,播放时隐藏暂停图标 代码说明,代码传入url后,可直接复制使用 VideoPausedIcon.ts 组件 VideoCom.tsx Video.module.less 参考网址 在Video.js播放器中定制自己的组件 - acgtofe 效…

域控操作四:本地化统一壁纸切可随时更改

分两步 1,将壁纸发送到本地,2指向本地地址路径 将壁纸发送到本地 用户配置–首选项–Windows设置–文件 按图进行更改就可以将共享文件夹的图片发送到员工电脑上 2将壁纸指向刚刚设置的目的文件 用户配置–策略–管理模板–桌面–桌面 按图进行设置即…

CNN RNN DNN transformer 区别以及音频信号处理适合方式

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群附加赠送,蓝牙耳机音频实际项目核心开发资料(芯片手册,电路图,源码(已量产),参考文档), 语音信号处理降噪算法课程资料,ANC ENC AEC LMS CNN RNN DNN tra…

使用UART烧录N76E003AT20核心板

目录 模块简介烧录方式利用ISP对N76E003AT20核心板进行烧录ICP烧录BootloaderISP烧录程序(UART)测试现象 总结 模块简介 N76E003为带有flash的增强型8位8051内核微控制器(1T工作模式),指令集与标准的80C51完全兼容并具…

alpine linux如何指定软件包安装源

永久修改apk下载源 vi etc/apk/repositories替换成阿里源 http://mirrors.aliyun.com/alpine/v3.8/main/ http://mirrors.aliyun.com/alpine/v3.8/community/更新源 apk update临时修改下载源 直接在软件安装后面 添加源地址 apk add php5.6 --repository http://nl.alpine…

RDB是什么?·

目录 一、RDB是什么? 二、 RDB触发机制 2.1 手动触发 2.2 自动触发 2.3 RDB执行流程 三、RDB的文件处理 四、RDB的优缺点 一、RDB是什么? RDB是Redis DataBase,是Redis实现数据持久化的一种方式。因为Redis的数据是存储在内存中的&#xff0…

Misc | bucket 第二届“奇安信”杯网络安全技能竞赛

题目描述: 解密Base全家桶。 密文: 下载附件,解压得到一个txt文本,打开如下。 3441344134363435344435323442344534423441343635353334353333323442343935413442353434393535354135333441344534353536353535333332353534413436…

Karmada更高效地实现故障转移

随着云原生技术的发展,其应用场景不断扩大。越来越多的企业开始将应用程序部署在 Kubernetes 集群中,随着 Kubernetes 集群规模的不断扩大,也带来了许多管理挑战,例如多集群间负载均衡、资源调度、故障转移等问题。为了解决这些问…

redis一条set命令的执行过程

set命令,在我们看来很简单,set zhangsan lisi,redis给我们返回一个 ok,就完事了。那redis的服务端是怎么处理这条简单的命令的?是不是像我们看起来的这么简单。今天这篇文章就来聊聊这个问题。 在上一篇文章中,我们聊…

超详细的Jmeter随机参数各种搭配

前言 参数配置应该有三种场景,具体其他的我还没想到,那到底是哪三种呢?如果你也对这个问题感兴趣的话,那就让我们一起往下看吧! 一、两个固定值之间随机生成一个值,应用场景没有限制 1、最简单的两个值之…

【Pytorch笔记】7.torch.nn (Convolution Layers)

我们常用torch.nn来封装网络,torch.nn为我们封装好了很多神经网络中不同的层,如卷积层、池化层、归一化层等。我们会把这些层像是串成一个牛肉串一样串起来,形成网络。 先从最简单的,都有哪些层开始学起。 Convolution Layers -…

Windows内的Ubuntu虚拟机安装docker

博主使用源码安装时遇到了很多奇葩情况,不知道是不是稀奇古怪的东西安装太多了导致的,下面是一个探索出来的可行又简单的路子: 流程 curl -fsSL https://test.docker.com -o install_docker.sh sudo sh install_docker.sh等待一阵子&#x…

使用新版Visual Studio编译老项目部分报错处理

“/ZI”和“/Gy-”命令行选项不兼容 进入“项目”—>“属性”—>“C/C” (1) —>“常规”—>“调试信息格式”—>选择“程序数据库(/Zi)”或“无” (2) —>“代码生成”—>“启用函数集链接”—>选择“是 (/Gy)” 使用zlib库 报错 error LNK2019: 无…