Docker Harbor私有镜像image仓库安装

  • Docker Harbor私有镜像image仓库安装

    • goharbor/harbor

      • 参考:https://www.cnblogs.com/wuvikr/p/14688079.html
    • #停止harbor

      • systemctl stop harbor.service
    • 使用prepare脚本重新加载harbor.yml中的配置

      • [root@harbor harbor]#./prepare
      • 稍等一会harbor会自动启动起来
      • 查看一下,可以看到nginx的443端口已经打开了
      • [root@harbor harbor]#docker-compose ps
      • #如果没启动起来, 改用systemclt来启动Harbor
      • [root@harbor harbor]# systemctl enable --now harbor.service
    • HTTPS

      • 创建一个生成证书的目录

        • mkdir -p /usr/local/harbor/certs
      • 生成CA证书

        • openssl req -newkey rsa:2048 -nodes -x509 -subj "/C=CN/ST=Beijing/L=Beijing/O=david/OU=IT/CN=ca.david.com/emailAddress=ca.david.com" -set_serial 01 -keyout ca.key -days 3650 -out ca.crt
      • 生成harbor证书申请

        • openssl req -newkey rsa:2048 -nodes -subj "/C=CN/ST=Beijing/L=Beijing/O=david/OU=devops/CN=harbor.david.com" -set_serial 02 -keyout harbor.key -out harbor.csr
      • 为harbor颁发证书

        • 参考:OpenSSL SAN 证书-CSDN博客
        • 需要使用SAN(Subject Alternative Name) 扩展,所以在颁发证书的需要做一些处理,不然登录时会报以下异常
        • [root@bogon config]# docker login harbor.david.com
          • Username: admin
          • Password:
          • Error response from daemon: Get "https://harbor.david.com/v2/": tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead
        • 创建v3_req的配置文件 *.david.com 支持该域名下的所有子域名

          • 参考:https://www.cnblogs.com/punchlinux/p/16499966.html
            • cat > v3.ext
            • authorityKeyIdentifier=keyid,issuer
            • basicConstraints=CA:FALSE
            • keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
            • extendedKeyUsage = serverAuth
            • subjectAltName = @alt_names
            • [alt_names]
            • DNS.1=*.david.com
            • EOF
          • 开始为harbor颁发带SAN扩展的证书 -extfile v3.ext

            • openssl x509 -req -in harbor.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor.crt -extfile v3.ext
          • 查看证书 支持所有子域名 DNS:*.david.com

            • openssl x509 -text -noout -in harbor.crt
X509v3 extensions:
X509v3 Authority Key Identifier:
keyid:B8:44:82:67:B2:E3:2C:70:B3:A9:04:66:BE:D4:C6:95:FD:2F:95:0F
X509v3 Basic Constraints:CA:FALSE
X509v3 Key Usage:Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment
X509v3 Extended Key Usage:TLS Web Server Authentication
X509v3 Subject Alternative Name:DNS:*.david.com
  • 修改harbor.yml

    • 打开之前被我们注释掉的https配置,并配置好crt和key的路径:
    • Harbor.crt 和 Harbor.key 中的harbor是小写,不是大写
    • certificate: /root/harbor/certs/Harbor.crt
    • private_key: /root/harbor/certs/Harbor.key
    • 修改为正确的路径
    • -rw-r--r-- 1 root root 1391 Oct 26 15:18 ca.crt
    • -rw------- 1 root root 1708 Oct 26 15:18 ca.key
    • -rw-r--r-- 1 root root 41 Oct 26 15:20 ca.srl
    • -rw-r--r-- 1 root root 1261 Oct 26 15:20 harbor.crt
    • -rw-r--r-- 1 root root 1013 Oct 26 15:19 harbor.csr
    • -rw------- 1 root root 1704 Oct 26 15:19 harbor.key
    • certificate: /usr/local/harbor/certs/harbor.crt
    • private_key: /usr/local/harbor/certs/harbor.key
  • 将证书复制到harbor目录下,推送我使用的是reg.david.com域名

    • mkdir -pv /etc/docker/certs.d/reg.david.com
    • cp ca.crt /etc/docker/certs.d/reg.david.com/
    • mkdir -pv /etc/docker/certs.d/harbor.david.com
    • cp ca.crt /etc/docker/certs.d/harbor.david.com/
  • 登录harbor

    • docker login harbor.david.com
  • 退出harbor

    • docker logout harbor.david.com
  • 本地host添加域名 harbor.david.com / ca.david.com / reg.david.com

    • [root@bogon config]# cat /etc/hosts
    • 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    • ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    • 192.168.221.129 reg.david.com
    • 192.168.221.129 harbor.david.com
    • 192.168.221.129 ca.david.com
  • docker push 报错:unauthorized: unauthorized to access repository: library/xx处理方法

    • #daemon.json中添加insecure-registries字段,代表上传不受IP限制
      • cat /etc/docker/daemon.json
      • {
        • "insecure-registries": ["0.0.0.0/0"],
        • "registry-mirrors": ["https://wbdhknhl.mirror.aliyuncs.com"]
      • }
    • 再次重启docker服务

      • systemctl daemon-reload && systemctl restart docker.service
      • 不一定是这个造成的,我看直接推送到library目录中就正常
  • 为镜像打Tag

    • docker tag seatunnel:2.3.3 reg.david.com/library/seatunnel:2.3.3
  • 向仓库推荐镜像

    • docker push reg.david.com/library/seatunnel:2.3.3

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

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

相关文章

QString设置小数点精度位数

QString设置小数点精度位数 Chapter1 QString设置小数点精度位数Chapter2 Qt中QString.toDouble有效位数6位问题以及数据小数点有效位数的处理问题一:QString.toDouble有效位只有6位问题二:小数点有效位数的问题 Chapter3 qt QString转Double只显示6位数字的问题(精…

docker的安装的详细教程,以及出现错的解决办法(阿里云)

docker的安装与使用 1.安装dnf sudo yum -y install dnf Repository extras is listed more than once in the configuration 错误:无法为仓库 appstream 找到一个有效的 baseurl 出现这个错误这是由于阿里云的版本导致的 在阿里云开发者社区有答案&#xff01…

【Google】关于Google Analytics埋点及API获取数据

本文是在实际操作中踩到的一些坑,并不是操作手册。具体的还是需要仔细按照官方文档操作。 参考文档:https://developers.google.com/analytics/ 重点看标红的文档即可 普通事件埋点 各端需要跟产品端确定好统一的事件名称和参数,否则数据混…

Python:日期和时间类型学习

背景 在非开发环境经常需要做一下日期计算,就准备使用Python,顺便记下来学习的痕迹。 代码 1 1 # coding utf-82 2 3 3 from datetime import *4 4 5 5 ########################## 日期 ##########################6 6 date_now date.today()…

如何实现WinApp的UI自动化测试?

WinApp(WindowsAPP)是运行在Windows操作系统上的应用程序,通常会提供一个可视的界面,用于和用户交互。例如运行在Windows系统上的Microsoft Office、PyCharm、Visual Studio Code、Chrome,都属于WinApp。常见的WinApp&…

《Python百宝箱》专栏目录

序号文章目录直达链接表白系列1无法拒绝的表白界面https://want595.blog.csdn.net/article/details/1352796112满屏飘字表白代码https://want595.blog.csdn.net/article/details/1352794873无限弹窗表白代码https://want595.blog.csdn.net/article/details/1352795754李峋同款可…

es6新特性——前端技术栈

ES6 基本介绍 ES6 是什么? ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准, 2015 年 6 月发布。ES6 设计目标:达到 JavaScript 语言可以用来编写复杂的大型程序,成为企业级开发语言ECMAScript 和 JavaScript 的关系&#xf…

使用内网穿透轻松实现在外远程访问本地威联通QNAP NAS

文章目录 前言1. 威联通安装cpolar内网穿透2. 内网穿透2.1 创建隧道2.2 测试公网远程访问 3. 配置固定二级子域名3.1 保留二级子域名3.2 配置二级子域名 4. 使用固定二级子域名远程访问 前言 购入威联通NAS后,很多用户对于如何在外在公网环境下的远程访问威联通NAS…

vue3事件总线mitt使用方式

我的使用场景 在项目中遇到一个这样的问题。页面使用了keepalive缓存, 员工排班和班次之间的数据有关联,当我删除一个班次后,给员工排的班,属于那个被删的班次的情况,已经生效的不会受影响,但是未生效的排…

学习使用echats实现双刻度echarts双Y轴,左右Y轴数据的方法

学习使用echats实现双刻度echarts双Y轴&#xff0c;左右Y轴数据的方法 代码效果图 代码 <!--此示例下载自 https://echarts.apache.org/examples/zh/editor.html?cline-stack&langjs --> <!DOCTYPE html> <html lang"en" style"height: 10…

Visual Studio 任务列表

任务列表 帮助我们快速找到注释位置&#xff08;用在需要反复查找修改的地方&#xff09; 使用//todo&#xff1a;注释的内容就会显示在任务列表中。 任务列表如何打开&#xff1f; 视图—任务列表 &#xff08;CTRlwt&#xff09; 创建自定义令牌&#xff1a; 在 “工具”…

学习路径概览

根据codewave 低代码官方的资料&#xff0c;我们以一个简单的初级采购管理系统为例&#xff0c;带大家进行学习。学习的案例框架如下&#xff1a; https://ik4mh7u2np.feishu.cn/docx/NjyEd9qD5oElkoxJhapc3fV4nPe?fromfrom_copylink​​​​​​​ 主要分为以下四个学习模块

L1-075:强迫症

题目描述 小强在统计一个小区里居民的出生年月&#xff0c;但是发现大家填写的生日格式不统一&#xff0c;例如有的人写 199808&#xff0c;有的人只写 9808。有强迫症的小强请你写个程序&#xff0c;把所有人的出生年月都整理成 年年年年-月月 格式。对于那些只写了年份后两位…

Taro +vue3 中跳转页面 如何带一个数组或者对象进入下一个页面 解码或者编码

1. 需求 在我开发H5 的过程中 发现 有些接口 后端的接口提供不了 或者其他的原因 发现一些详情的页面 我没有接口 数据获取不到 需要用到的是 那种列表数据 所以只能用跳转的方式 实现这个功能. 2. Taro.nagivate() 跳转: Taro.navigateTo({url: /pages/order-detail/index…

Centos7部署Keepalived+lvs服务

IP规划&#xff1a; 服务器IP地址主服务器20.0.0.22/24从服务器20.0.0.24/24Web-120.0.0.26/24Web-220.0.0.27/24 一、主服务器安装部署keepalivedlvs服务 1、调整/proc响应参数 关闭Linux内核的重定向参数&#xff0c;因为LVS负载服务器和两个页面服务器需要共用一个VIP地…

『番外篇八』SwiftUI 脑洞大开实现“另类”视图跟随方法

概览 在 SwiftUI 的开发中,我们时常需要用指尖丝滑般地操作指定视图:比如,我们需要在拖动视图后让它自动归位,或者拖动一个视图时让另一个视图跟随它移动。 我们随后将会详细讨论上述两个 SwiftUI 中与视图移动相关场景的实现。 在本篇博文中,您将学到如下内容: 概览1.…

python期刊稿件在线投稿系统q2ud0

本系统的用户可分为管理员、投稿者、审稿人和编辑四个用户角色组成。管理员可以管理系统内所有功能&#xff0c;主要有个人中心、投稿者管理、审稿人管理、编辑管理、个人稿件管理、审核稿件管理、稿件信息管理、类型管理等功能&#xff1b;编辑登录系统主要有个人中心、审核稿…

四种常见智能指针的介绍

一、介绍 当类中有指针成员时&#xff0c;一般有两种方式来管理指针成员&#xff1a;一是采用值型的方式管理&#xff0c;每个类对象都保留一份指针指向的对象的拷贝&#xff1b;另一种更优雅的方式是使用智能指针(smart pointer)&#xff0c;从而实现指针指向的对象的共享。 …

统信系统常见问题解决方法

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 背景说明 本文所说的问题&#xff0c;是基于浪潮统信UOS的环境存在的问题。 一、WPS新建文档默认保存格式不对 解决办法&#xff1a; 1.编辑/opt/apps/cn.wps.wps-office-pro/files/kingsoft/wps-office/…

Element-Ui树形数据懒加载,删除到最后一个空数组不刷新问题

使用elemenui树形删除数据的时候刷新页面&#xff0c;我在网上找了好多方法&#xff0c;要么没用&#xff0c;要么都是部分代码&#xff0c;自己又看不懂&#xff0c;不得不硬着头皮看源码&#xff0c;发现了有个方法可以刷新。 使用elemenui树形删除数据的时候刷新页面。源码里…