使用Harbor搭建局域网私有docker镜像库

说明:本文只介绍使用http的方式访问Harbor镜像库,https访问的方式请自行查询。

一、安装harbo

前提条件:已安装好docker。

  • 1.1、安装docker-compose

    sudo apt install docker-compose
    
  • 1.2、下载Harbor
    从Harbor的官方github,下载最新的版本。注意最好下载离线版本harbor-offline-installer-vx.xx.x.tgz。在线安装对网络要求高,一般国内由于某些原因无法在线安装。

  • 1.3、安装Harbor
    我这里以harbor-offline-installer-v2.11.0.tgz这个版本为例。

    • 1.3.1、解压
    tar -vxzf harbor-offline-installer-v2.11.0.tgz
    

    解压后会得到一个harbor文件夹。

    • 1.3.2、配置文件
    cd harbor
    cp harbor.yml.tmpl harbor.yml
    
    • 1.3.3、修改harbor.yml
    vim harbor.yml
    

    配置主机和端口:

    # 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: 改为自己的主机名(通过命令 cat /etc/hostname 获取)
    
    # http related config
    http:
    # port for http, default is 80. If https enabled, this port will redirect to https port
    	port: 8180 #这里默认是80,如果80端口已占用改为其他端口
    

    屏蔽https相关的配置,以后需要再配置:

    # https related config
    # https:
    	# https port for harbor, default is 443
    	# port: 443
    	# The path of cert and key files for nginx
    	# certificate: /your/certificate/path
    	# private_key: /your/private/key/path
    	# enable strong ssl ciphers (default: false)
    	# strong_ssl_ciphers: false
    

    配置harbor的存储位置:

    # The default data volume
    data_volume: /home/zhangge/data/harbor_data  # 默认是/data,改为自己想存放的位置
    

    配置harbor的log存储位置:

    # 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: /home/zhangge/data/harbor_data/log/harbor #改为自己想存放的路径
    
    • 1.3.4、导入使用到的docker镜像
    # 在harbor文件夹中会有harbor.v2.11.0.tar.gz这个文件
    docker load -i harbor.v2.11.0.tar.gz
    
    • 1.3.5、开始安装
    ./prepare
    sudo ./install.sh
    
    • 1.3.6、需要重新更改配置时

    停止harbor启动的容器:

    cd harbor
    sudo docker-compose down -v
    
    # 修改完配置后进行重新安装
    

    开机后如果服务没起来:

    cd harbor
    sudo docker-compose up -d
    

二、harbo的web界面

在浏览器输入http://127.0.0.1:8180,端口改为配置的端口。可以进入web访问界面:
在这里插入图片描述
默认用户名:admin,密码:Harbor12345。输入后可访问管理页面。

三、docker配置http访问

docker默认是https访问,需要配置为支持http访问。

sudo vim /etc/docker/daemon.json

添加以下内容:

{
        "insecure-registries": ["10.0.3.152:8180"]
}

其中,需要把ip改为自己的主机ip。

重启docker守护进程:

sudo systemctl daemon-reload
sudo systemctl restart docker

四、docker使用Harbor

Harbor默认创建了library这个项目,以向library项目推送、拉取为例:
我这里的主机ip为: 10.0.3.152,配置的端口为8180。

  • 4.1、登录Harbor

    docker login http://10.0.3.152:8180
    
    # 然后输入Harbor的用户名和密码
    
  • 4.2、推送仓库

    # 将从docker-hub拉取的ubuntu:20.04仓库打个tag:
    docker tag ubuntu:20.04 10.0.3.152:8180/library/ubuntu:20.04
    
    # 推送到Harbor仓库
    docker push 10.0.3.152:8180/library/ubuntu:20.04
    

    推送完后,也可以登录管理界面进行查看。

  • 4.3、拉取仓库

    # 本机或局域网内其他主机
    docker pull 10.0.3.152:8180/library/ubuntu:20.04
    

五、WSL下使用Harbor

WSL中使用docker harbor私服拉取镜像时,报如下错误:

root@node02 ~]# docker login http://10.0.3.152:8180
Username: admin
Password:
Error response from daemon: Get https://10.0.3.152:8180/v2/: Get https://zhangge-OptiPlex-3080/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry: dial tcp: lookup harbor on 10.0.3.152:53: no such host

因为在拉取镜像时会调用harbor服务接口,这里因找不到zhangge-OptiPlex-3080域名报错,在hosts文件中增加域名映射即可:

sudo vi /etc/hosts

添加如下内容:

10.0.3.152      zhangge-OptiPlex-3080

将ip后面的主机名改为实际的主机名,接下来就正常了。

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

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

相关文章

聊聊探索性测试

探索性测试定义及来源:​ 特意度娘了一下,探索性测试的定义: 探索性测试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性…

使用opencv合并两个图像

本节的目的 linear blending(线性混合)使用**addWeighted()**来添加两个图像 原理 (其实我也没太懂,留个坑,感觉本科的时候线代没学好。不对,我本科就没学线代。) 源码分析 源码链接 #include "opencv2/imgc…

Python-gui开发之Pycharm+pyside6/Pyqt6环境搭建

Python-gui开发之Pycharm+pyside6/Pyqt6环境搭建 软件版本一、软件安装1、Python安装2、Pycharm安装3、pyside6或pyqt6安装①安装pyside6②安装PyQt6和pyqt6-tools二、Pycharm项目配置1、插件安装2、新建项目以及环境配置3、包管理安装三、在Pycharm中配置PySide61、pyside6 Qt…

MySQL功能测试-之应用工程

MySQL功能测试-之应用工程 前言pom.xmlapplication.yml 文件common.vo 包ResultVO config 包properties 包DruidConfigPropertyDruidMonitorProperty AutoFillMetaObjectHandlerDruidConfigFluxConfigurationMyBatisPlusConfig controller 包ClientControllerDruidControllerWe…

人工智能产品经理,行业巨头争夺的稀缺人才

前言 在当今这个由数据驱动的时代,人工智能(AI)正迅速成为推动各行各业创新的核心力量。随着行业巨头纷纷布局人工智能领域,对于专业人才的需求也日益增长。特别是人工智能产品经理这一岗位,缺口高达6.8万&#xff0c…

[机器学习算法] Q学习

Q学习(Q-Learning)是一种基于值的强化学习算法,用于在给定状态下选择动作,以最大化累积奖励。它通过不断更新一个称为Q表(Q-table)的表来学习动作的价值。 一、理解基本概念 状态 (State, S) 这是环境的…

戏剧之家杂志戏剧之家杂志社戏剧之家编辑部2024年第14期目录

文艺评论 南戏瓯剧跨文化传播研究 陈晓东;高阳;许赛梦; 3-7 论互联网时代的戏剧传播与批评——以西法大剧社和南山剧社为例 邬慧敏; 8-10 “左手荒诞,右手温情”——《西西弗神话》在戏剧《第七天》中的接受探究 赵稳稳; 11-13 戏剧研讨《戏剧之家》投稿…

计算机毕业设计师hadoop+spark+hive知识图谱医生推荐系统 医生数据分析可视化大屏 医生爬虫 医疗可视化 医生大数据 机器学习 大数据毕业设计

流程: 1.Python爬虫采集中华健康网约10万医生数据,最终存入mysql数据库; 2.使用pandasnumpy/hadoopmapreduce对mysql中的医生数据进行数据分析,使用高德地图解析地理位置,并将结果转入.csv文件同时上传到hdfs文件系统&…

Github生成Personal access tokens及在git中使用

目录 生成Token 使用Token-手工修改 使用Token-自动 生成Token 登录GitHub,在GitHub右上角点击个人资料头像,点击Settings → Developer Settings → Personal access tokens (classic)。 在界面上选择点击【Generate new token】,填写如…

西米支付:【风控升级】同一商户集中交易,将会限制正常用卡

支付公司风控策略再升级!近日,有某支付公司代理透漏,客户反馈机器突然不能刷卡了,换卡也无法交易,交易均提示06-超出商户限额,然而该款机器刷卡限额为单日30万,单月300万,客户并未触…

ctr/cvr预估之FM模型

ctr/cvr预估之FM模型 在数字化时代,广告和推荐系统的质量直接影响着企业的营销成效和用户体验。点击率(CTR)和转化率(CVR)预估作为这些系统的核心组件,其准确性至关重要。传统的机器学习方法,如…

怎么把答案去掉打印?超详细步骤告诉你!

在数字化教育日益普及的今天,我们时常需要在电子试卷和纸质试卷之间进行转换。然而,许多时候我们并不需要答案部分,这就需要我们掌握一些工具来去除答案,以便打印出纯净的试卷。本文将为您详细介绍如何使用试卷星、拍试卷以及WPS …

如何避免群发引起反感?

微信群发信息引起反感主要是因为缺乏情感,尽管最初微信群发旨在传递有价值信息,但由于滥用,现在人们对其印象非常负面。但是,还是有办法挽救的! 群发消息时按照这3个标准发,可以避免被反感。 1、短信群发目…

SDK编译IO Domain电压选择

开源鸿蒙硬件方案领跑者 触觉智能 本文适用于在Purple Pi OH开发板进行分区镜像烧录。触觉智能的Purple Pi OH鸿蒙开源主板,是华为Laval官方社区主荐的一款鸿蒙开发主板。 该主板主要针对学生党,极客,工程师,极大降低了开源鸿蒙…

MEMS六轴陀螺仪工作原理介绍

MEMS(微机电系统)六轴陀螺仪主要包括三轴陀螺仪和三轴加速度计,以下是其工作原理的简要介绍: 三轴陀螺仪工作原理: 陀螺仪利用科里奥利力原理来测量角速度。它通常有一个可振动的质量…

VScode开发ARM环境搭建

1. vscode安装 直接访问官网: Visual Studio Code - Code Editing. Redefined 2. 安装插件 2.1. 安装Embedded IDE 2.2. 安装Cortex-debug 3. 工程初始化 3.1. 导入现有工程(推荐) 3.2. 或可创建新的工程 3.2.1. 选择Cortex-M项目 指定项目名称&…

一文简述AI自动化漏洞修复实践

2024年,人工智能(AI)技术正以其前所未有的速度和影响力,革新着网络安全领域。AI在自动化漏洞修复方面的应用,标志着我们迈入了一个全新的网络安全时代。近日,在中国电信组织的一场技术交流会上,…

【React】Axios请求头注入token

业务背景: Token作为用户的数据标识,在接口层面起到了接口权限控制的作用,也就是说后端有很多接口都需要通过查看当前请求头信息中是否含有token数据,来决定是否正常返回数据 // 添加请求拦截器 request.interceptors.request.use(config …

多模块开发

简介 Git 通过子模块来解决复用模块的问题。 submodule允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。而subtree可以将子模块合并到主模块由主模块完全管理。 git subModule Git地址&#…

【Kafka】Kafka生产者数据重复、数据有序、数据乱序-07

【Kafka】Kafka生产者数据重复、数据有序、数据乱序-07 1. 数据重复1.1 数据传递语义1.2 幂等性1.2.1 如何开启幂等性1.2.2 同一个消息,多个分区都会存在吗? 1.3 事务1.3.1 Kafka 事务原理1.3.2 Kafka事务的作用和意义作用具体应用场景 2. 数据有序3. 数…