Harbor镜像中心搭建

news2025/1/3 4:18:45

文章目录

  • Harbor镜像中心搭建
    • 前置条件
    • 下载Harbor
    • 创建CA证书
    • 配置Harbor
    • 开始启动
    • 地址映射
    • 访问
    • 配置本地登录
    • 配置外部虚拟机访问

Harbor镜像中心搭建

Harbor是一个镜像中心,我们所熟知的DockerHub就是一个镜像中心,我们可以把我们打包的镜像放在镜像中心中供自己下次拉取或者他人使用,但是DockerHub是一个公共的镜像中心,我们平时打包的很多镜像并不希望放在公共的环境上,所以我们可以用Harbor创建一个属于自己的镜像中心

Harbor官网

前置条件

  • CPU:至少2核,推荐4核
  • 内存:至少4G,推荐8G
  • 磁盘:至少40G,推荐160G,但这里我进行搭建简单的使用20G就够了
  • Docker:要求Version 20.10.10-ce+或者更高
  • Docker Compose:要求v1.18.0+或者更高

关于Docker Compose我们可以去github下载,这里记得科学上网,否则会超级慢

DockerCompose下载网址

下载完成后,执行以下命令

# docker-compose命令可以不用加./就可以使用
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
# 给docker-compose添加可以执行权限
chmod +x /usr/local/bin/docker-compose
# 进行链接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

执行docker-compose version出现以下内容便安装成功:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

端口:保证80、443、4443没有被占用并且可以使用

下载Harbor

下载地址:https://github.com/goharbor/harbor/releases

这里建议使用offline方式去安装,因为离线安装包将docker镜像也打包了进去,这样我们可以省下很多事情;online方式需要去dockerhub里面拉取镜像,速度很慢

下载完成后上传到Linux中

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

创建CA证书

harbor要求要有CA证书,官网网址也有相关操作

https://goharbor.io/docs/2.11.0/install-config/configure-https/

**注意:**命令中的所有yourdomain.com都要一模一样,这个也是后面你的harbor的域名比如这里我统一叫harbor.kubeimooc.com

这里可以将这些操作写成一个shell脚本方便使用,按照顺序执行完后会生成这些文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

而且在/etc/docker目录下也会生成certs.d文件,进入到该文件下会看到我们的域名目录

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

配置Harbor

进入到刚才解压的Harbor目录下,配置harbor.yml文件

# Configuration file of Harbor

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
# 和自己刚才所叫的名字一样
hostname: harbor.kubeimooc.com

# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  # 如果端口被占用,可以在这里修改
  port: 80

# https related config
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  # 就是/etc/docker/certs.d中的几个文件
  certificate: /etc/docker/certs.d/harbor.kubeimooc.com/harbor.kubeimooc.com.cert
  private_key: /etc/docker/certs.d/harbor.kubeimooc.com/harbor.kubeimooc.com.key


# Uncomment external_url if you want to enable external proxy
# And when it enabled the hostname will no longer used
# external_url: https://reg.mydomain.com:8433

# The initial password of Harbor admin
# It only works in first time to install harbor
# Remember Change the admin password from UI after launching Harbor.
# 登录密码
harbor_admin_password: 123

# Harbor DB configuration
database:
  # The password for the root user of Harbor DB. Change this before any production use.
  password: root123
  # The maximum number of connections in the idle connection pool. If it <=0, no idle connections are retained.
  max_idle_conns: 50
  # The maximum number of open connections to the database. If it <= 0, then there is no limit on the number of open connections.
  # Note: the default number of connections is 100 for postgres.
  max_open_conns: 100

# The default data volume
data_volume: /data

# Harbor Storage settings by default is using /data dir on local filesystem
# Uncomment storage_service setting If you want to using external storage
# storage_service:
#   # ca_bundle is the path to the custom root ca certificate, which will be injected into the truststore
#   # of registry's and chart repository's containers.  This is usually needed when the user hosts a internal storage with self signed certificate.
#   ca_bundle:

#   # storage backend, default is filesystem, options include filesystem, azure, gcs, s3, swift and oss
#   # for more info about this configuration please refer https://docs.docker.com/registry/configuration/
#   filesystem:
#     maxthreads: 100
#   # set disable to true when you want to disable registry redirect
#   redirect:
#     disabled: false

# Clair configuration
clair:
  # The interval of clair updaters, the unit is hour, set to 0 to disable the updaters.
  updaters_interval: 12

jobservice:
  # Maximum number of job workers in job service
  max_job_workers: 10

notification:
  # Maximum retry count for webhook job
  webhook_job_max_retry: 10

chart:
  # Change the value of absolute_url to enabled can enable absolute url in chart
  absolute_url: disabled

# Log configurations
log:
  # options are debug, info, warning, error, fatal
  level: info
  # configs for logs in local storage
  local:
    # Log files are rotated log_rotate_count times before being removed. If count is 0, old versions are removed rather than rotated.
    rotate_count: 50
    # Log files are rotated only if they grow bigger than log_rotate_size bytes. If size is followed by k, the size is assumed to be in kilobytes.
    # If the M is used, the size is in megabytes, and if G is used, the size is in gigabytes. So size 100, size 100k, size 100M and size 100G
    # are all valid.
    rotate_size: 200M
    # The directory on your host that store log
    location: /var/log/harbor

  # Uncomment following lines to enable external syslog endpoint.
  # external_endpoint:
  #   # protocol used to transmit log to external endpoint, options is tcp or udp
  #   protocol: tcp
  #   # The host of external endpoint
  #   host: localhost
  #   # Port of external endpoint
  #   port: 5140

#This attribute is for migrator to detect the version of the .cfg file, DO NOT MODIFY!
_version: 1.10.0

# Uncomment external_database if using external database.
# external_database:
#   harbor:
#     host: harbor_db_host
#     port: harbor_db_port
#     db_name: harbor_db_name
#     username: harbor_db_username
#     password: harbor_db_password
#     ssl_mode: disable
#     max_idle_conns: 2
#     max_open_conns: 0
#   clair:
#     host: clair_db_host
#     port: clair_db_port
#     db_name: clair_db_name
#     username: clair_db_username
#     password: clair_db_password
#     ssl_mode: disable
#   notary_signer:
#     host: notary_signer_db_host
#     port: notary_signer_db_port
#     db_name: notary_signer_db_name
#     username: notary_signer_db_username
#     password: notary_signer_db_password
#     ssl_mode: disable
#   notary_server:
#     host: notary_server_db_host
#     port: notary_server_db_port
#     db_name: notary_server_db_name
#     username: notary_server_db_username
#     password: notary_server_db_password
#     ssl_mode: disable

# Uncomment external_redis if using external Redis server
# external_redis:
#   host: redis
#   port: 6379
#   password:
#   # db_index 0 is for core, it's unchangeable
#   registry_db_index: 1
#   jobservice_db_index: 2
#   chartmuseum_db_index: 3
#   clair_db_index: 4

# Uncomment uaa for trusting the certificate of uaa instance that is hosted via self-signed cert.
# uaa:
#   ca_file: /path/to/ca

# Global proxy
# Config http proxy for components, e.g. http://my.proxy.com:3128
# Components doesn't need to connect to each others via http proxy.
# Remove component from `components` array if want disable proxy
# for it. If you want use proxy for replication, MUST enable proxy
# for core and jobservice, and set `http_proxy` and `https_proxy`.
# Add domain to the `no_proxy` field, when you want disable proxy
# for some special registry.
proxy:
  http_proxy:
  https_proxy:
  # no_proxy endpoints will appended to 127.0.0.1,localhost,.local,.internal,log,db,redis,nginx,core,portal,postgresql,jobservice,registry,registryctl,clair,chartmuseum,notary-server
  no_proxy:
  components:
    - core
    - jobservice
    - clair

开始启动

执行命令

# 启动harbor
./install.sh
# 查看启动状态
docker-compose ps

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

若状态都是healthy就证明启动成功

地址映射

想要在外部浏览器访问harbor,需要进行地址映射,这里因为我是Windows系统,所以演示Windows系统的地址映射

C:\Windows\System32\drivers\etc中修改hosts文件

# 虚拟机地址       #harbor地址
192.168.3.61  harbor.kubeimooc.com

访问

在浏览器输入harbor.kubeimooc.com即可访问

用户名:admin

密码:123

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

配置本地登录

如果想在Linux环境下将镜像推送到Harbor,需要配置/etc/hosts文件

127.0.0.1 localhost
127.0.1.1 root

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# 加入进去
192.168.3.61 harbor.kubeimooc.com

然后执行以下命令登录到自己的harbor镜像

docker login harbor.kubeimooc.com

登录成功后就可以进行拉取上传镜像了

配置外部虚拟机访问

配置/etc/hosts文件

127.0.0.1 localhost
127.0.1.1 ubuntu

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.3.61 harbor.kubeimooc.com

/etc/docker/certs.d文件传输到外部虚拟机下的/etc/docker

scp certs.d ubuntu@192.168.3.56:/etc/docker

全部配置好后就可以使用命令docker login 进行登录访问了

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

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

相关文章

Proteus 新建工程

Proteus 新建工程 新建简单工程 首先在File工具栏中点击New Project&#xff0c;弹出新建工程向导程序(New Proteus Wizard) 填写工程名称与存储路径&#xff0c;选择New Proteus并点击Next进行下一步设置 我们不需要生成PCB文件&#xff0c;一路默认&#xff0c;点击Next即…

基于springboot实现火锅店管理系统项目【项目源码+论文说明】

基于springboot实现火锅店管理系统演示 摘要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装火锅店管理系统软件来…

篮球杯小白+强者

2. 宣读数字【算法赛】 思维题&#xff0c;注意到完全平方数的约数是奇数个&#xff0c;其余都是偶数个。 #include <bits/stdc.h>using namespace std;#define LL long long#define pb push_back#define x first#define y second #define int long long #define endl \n…

[240615] X-CMD 发布 v0.3.11,增加对 elvish 的支持

目录 X-CMD 发布 v0.3.11&#xff0c;增加对 elvish 的支持&#xff0c;并优化对 nushell&#xff0c;fish&#xff0c;xonsh&#xff0c;tcsh 的支持✨ co 模块 - copilot✨ elv 模块✨ hub X-CMD 发布 v0.3.11&#xff0c;增加对 elvish 的支持&#xff0c;并优化对 nushell&…

2024抖音电影奇遇夜沪上落幕,短视频宣发助力电影佳作被看见

6月14日&#xff0c;由抖音、央视电影频道联合举办的2024抖音电影奇妙夜在上海落幕。该活动以“在电影里遇见”为主题&#xff0c;邀请40个电影剧组、120多位影人嘉宾、30位抖音创作者共话光影。张艺谋、陈思诚、刘伟强、黄渤、吴镇宇、马丽、邓超、任贤齐、张家辉、倪妮、刘昊…

2078.两栋颜色不同且距离最远的房子

街上有 n 栋房子整齐地排成一列&#xff0c;每栋房子都粉刷上了漂亮的颜色。给你一个下标从 0 开始且长度为 n 的整数数组 colors &#xff0c;其中 colors[i] 表示第 i 栋房子的颜色。 返回 两栋 颜色 不同 房子之间的 最大 距离。 第 i 栋房子和第 j 栋房子之间的距离是 a…

Keil5新建工程详细讲解

一. 新建文件夹并拷贝库文件 新建project文件夹后建立4个子文件夹&#xff1a;startup&#xff0c;device&#xff0c;drivers&#xff0c;main 二. 新建mdk工程 1. 打开MDK软件&#xff0c;再点击Project->New uVision Project…新建一个工程&#xff0c;在弹出的对话框内…

MySQL日常问题-行列互换

问题 行列互换 场景1 行转换列 1、表结构和数据 /*Navicat Premium Data TransferSource Server : 本地Source Server Type : MySQLSource Server Version : 80027Source Host : localhost:3306Source Schema : schoolTarget Server Type :…

Javaweb9 AOP+案例

AOP Aspect Oriented Programming面向切片编程【就是面向特定方法变成】 SpringAOP是Spring框架的高级技术&#xff0c;旨在管理bean对象的过程中&#xff0c;主要通过底层的**动态代理机制&#xff0c;**对特定的方法进行编程 1.导入AOP依赖 2.编写AOP程序 加上Component//类…

二分查找-java代码实现(easy)

目录 一、问题描述 二、代码实现 三、刷题链接 一、问题描述 二、代码实现 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** 如果目标值存在返回下标&#xff0c;否则返…

Digital电路仿真软件的安装

文章目录 1. Java环境的安装 2. Digital安装 3. 软件配置 1. Java环境的安装 电路仿真软件Digital是一款用于设计和仿真数字逻辑电路的工具。它可以帮助用户创建、测试和调试各种数字电路&#xff0c;提供可视化的电路编辑环境&#xff0c;使得设计过程更加直观和便捷。 D…

Apple - Cocoa Text Architecture Guide

翻译整理自&#xff1a;Cocoa Text Architecture Guide https://developer.apple.com/library/archive/documentation/TextFonts/Conceptual/CocoaTextArchitecture/Introduction/Introduction.html#//apple_ref/doc/uid/TP40009459 文章目录 一、关于 Cocoa 文本系统1、概览大…

MyBatis 的多级缓存机制是怎么样运作的?

引言&#xff1a;上周三&#xff0c;小 X 去面试一家中厂&#xff0c;其中面试官问到 MyBatis 的多级缓存机制是怎么样运行的&#xff1f;这个问题可以好好准备一下&#xff0c;很多人可能只会用 MyBatisPlus&#xff0c;简单的多表联查 SQL 语句可能都写不出来&#xff0c;更别…

MySql 各种 join

MySql 定义了很多join的方式&#xff0c;接下来我们用一个例子来讲解。 用到的表 本文用到了两个表s1,s2&#xff1a; 内外连接 测试 1 1 1.select * from s1 inner join s2 on(s1.id s2.id);&#xff1a; -------- | id | id | -------- | 3 | 3 | | 4 | 4 | --------2…

sqlite3模块的使用

1. SQLite数据库 SQLite是一个轻量级的, 基于磁盘的, 关系型的数据库管理系统(RDBMS). 它不需要一个独立的服务器进程或操作系统级别的配置. SQLite是D.Richard Hipp在2000年创建的, 并且由于其小巧, 快速, 可靠和易于使用的特性, 它在全球范围内得到了广泛的应用.以下是 SQLi…

最长回文子串问题详解

最长回文子串的问题描述&#xff1a;给出一个字符串S&#xff0c;求S的最长回文子串的长度。 针对这个问题&#xff0c;先看暴力解法&#xff1a;枚举子串的两个端点i和j&#xff0c;判断在[i,j]区间内的子串是否回文。从复杂度上来看&#xff0c;枚举端点需要&#xff0c;判断…

【招联消费金融股份】有限公司2024年5月18日【算法开发岗暑期实习】一面试经验分享

招联消费金融股份有限公司2024年5月18日面试经验分享 面试流程&#xff1a;共30多分钟&#xff0c;先3分钟自我介绍&#xff0c;然后细细介绍简历上面的论文和实习信息。问题1&#xff1a;扩散模型的noise schedule有什么研究。问题2&#xff1a;有哪些常见的数学分布问题3&…

数据结构:冒泡排序,选择排序,插入排序,希尔排序的实现分析

✨✨小新课堂开课了&#xff0c;欢迎欢迎~✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 小新的主页&#xff1a;编程版小新-CSDN博客 1.冒泡排序 1.1算法思想 冒泡排序的基本思想就是&a…

关于Java

关于Java Java语言关于并发JVM调优工具写在最后 Java语言 Java语言作为当下主流开发语言&#xff0c;其面向对象的开发模式以及一次编译多次运行&#xff0c;跨平台运行以及自动的垃圾回收机制可以说是给开发者节省了很大的时间用于逻辑功能的开发&#xff0c;那么在开发过程中…

【靶场搭建】-02- 搭建OWASP靶机

1.OWASP靶机介绍 相比较其他靶机&#xff0c;OWASP提供的环境更多&#xff0c;且包含了许多其他靶机的环境&#xff0c;属于性价比比较高的靶机了。 2.下载OWASP 访问以下地址进行下载&#xff1a; https://sourceforge.net/projects/owaspbwa/ 因为OWASP是虚拟机文件&…