docker-harbor私有仓库部署

news2024/11/24 22:24:49

什么是Harbor

Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。

Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。

Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 docker-compose 来对它进行部署。用于部署 Harbor 的 docker-compose 模板位于 harbor/docker-compose.yml。

Harbor的特性

1、基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。
2、基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。
3、支持 LDAP/AD:Harbor 可以集成企业内部已有的 AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理。
4、镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。
5、图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。
6、审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
7、支持 RESTful API:RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。
8、Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。

Harbor 在架构上主要有 Proxy、Registry、Core services、Database(Harbor-db)、Log collector(Harbor-log)、Job services 六个组件。

Harbor 部署:

①部署docker-compose服务

②部署harbor服务

下载或上传 Harbor 安装程序
Harbor的压缩包下载地址:https://github.com/goharbor/harbor/releases

wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz

tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

修改harbor安装的配置文件
vim /usr/local/harbor/harbor.cfg
--5行--修改,设置为Harbor服务器的IP地址或者域名
hostname = 192.168.80.10
--59行--指定管理员的初始密码,默认的用户名/密码是admin/Harbor12345
harbor_admin_password = Harbor12345

在这里插入图片描述
在这里插入图片描述

③启动harbor

cd /usr/local/harbor/
在配置好了 harbor.cfg 之后,执行 ./prepare 命令,为 harbor 启动的容器生成一些必要的文件(环境)
再执行命令 ./install.sh 以 pull 镜像并启动容器

在这里插入图片描述
在这里插入图片描述

④查看 Harbor 启动镜像

cd /usr/local/harbor/
docker-compose ps

docker-compose up -d      #启动
docker-compose stop       #停止
docker-compose restart    #重新启动

在这里插入图片描述
登录harbor:

(1)浏览器访问:http://192.168.146.20 登录 Harbor WEB UI 界面,
默认的管理员用户名和密码是 admin/Harbor12345

在这里插入图片描述
设置私有仓库:
在这里插入图片描述
上传镜像到公开仓库不需要登录私有仓库;

上传镜像到私有仓库需要登录私有仓库;
在这里插入图片描述

//下载镜像进行测试
docker pull nginx
 
//将镜像打标签
格式:docker tag 镜像:标签  仓库IP/项目名称/镜像名:标签
docker tag nginx:latest 127.0.0.1/myproject-kgc/nginx:v1
 
//上传镜像到 Harbor
docker push 127.0.0.1/myproject-kgc/nginx:v1

在这里插入图片描述
在这里插入图片描述
在 Harbor 界面 myproject-kgc 目录下可看见此镜像及相关信息
在这里插入图片描述

在其他客户端上传镜像

以上操作都是在 Harbor 服务器本地操作。如果其他客户端登录到 Harbor,就会报如下错误。
出现这问题的原因为Docker Registry 交互默认使用的是 HTTPS,
但是搭建私有镜像默认使用的是 HTTP 服务,所以与私有镜像交互时出现以下错误。
 
docker login -u admin -p Harbor12345 http://192.168.146.20
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://192.168.146.20/v2/: dial tcp 192.168.146.20:443: connect: connection refused

在这里插入图片描述

在 Docker 客户端配置操作

//解决办法是:在 Docker server 启动的时候,增加启动参数,默认使用 HTTP 访问。
vim /usr/lib/systemd/system/docker.service
--13行--修改
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.146.20 --containerd=/run/containerd/containerd.sock
或
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.146.20

在这里插入图片描述

重启 Docker,再次登录
systemctl daemon-reload
systemctl restart docker

在这里插入图片描述

再次登录 Harbor
docker login -u admin -p Harbor12345 http://192.168.146.20
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
 
Login Succeeded
 
//将自动保存凭据到/root/.docker/config.json,下次登录时可直接使用凭据登录 Harbor

在这里插入图片描述
在这里插入图片描述
下载镜像进行测试
docker pull 192.168.146.20/myproject-kgc/nginx:v1
在这里插入图片描述
上传镜像进行测试
docker pull cirros
docker tag cirros:latest 192.168.146.20/myproject-kgc/cirros:v2
docker push 192.168.146.20/myproject-kgc/cirros:v2
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

HTML5 语义元素(一)页面结构

本篇主要介绍HTML5增加的语义元素中关于页面结构方面的&#xff0c;包含&#xff1a; <article>、<aside>、<figure>、<figcaption>、<footer>、<header>、<main>、<nav>、<section>等元素。 目录 1. 语义元素介绍 1.…

01-SPA单页面的理解,它的优缺点分别是什么?如何实现SPA应用(了解))

文章目录 什么是SPA二、SPA和MPA的区别实现一个SPA1.引入库2.读入数据 总结 什么是SPA (single-page application),是一种网络应用程序或网站的模型&#xff0c;它通过动态重写当前页面来与用户交互&#xff0c;这种方法避免了页面之间切换打断用户体验,在单页应用中&#xff…

文心一言 VS 讯飞星火 VS chatgpt (39)-- 算法导论5.4 3题

三、在生日悖论的分析中&#xff0c;要求各人生日彼此独立是否很重要?或者&#xff0c;是否只要两两成对独立就足够了?证明你的答案。 文心一言&#xff1a; 在生日悖论的分析中&#xff0c;要求各人生日彼此独立是非常重要的。这是因为&#xff0c;如果各人生日不是独立的…

名号响亮的BBA,为什么在电车市场上“消失匿迹”了?

6月初&#xff0c;各大新能源车企公布了5月份的新车交付情况。整体来看&#xff0c;原本就“打得火热”的车市持续升温&#xff0c;多家车企月度销量环比涨幅超过10%&#xff0c;其中比亚迪更是拿出了超24万辆的“惊人表现”领跑市场。作为新势力的理想汽车&#xff0c;也打破单…

AntDB 企业增强特性介绍——同步异步自适应流复制

AntDB 提供了 hot-standby 的能力&#xff0c;功能与 Oracle 11g 的active standby 类似。并且通过流复制的方式&#xff0c;大大地缩短了备份库与主库的事务间隔。 传统流复制分为同步和异步两种模式。同步复制&#xff0c;即主机的事务要等到备机提交成功后才会提交并结束事…

2023-6-12-第三式单例模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

前端vue可以左右滚动的切换的tabs tabs选项卡 滑动动画效果 自动宽度

前端vue可以左右滚动的切换的tabs tabs选项卡 滑动动画效果 自动宽度, 下载完整代码请访问https://ext.dcloud.net.cn/plugin?id13003 效果图如下: #### 使用方法 使用方法 swiperTabList: ["2023-06-10","2023-06-11","2023-06-12","2…

ICASSP 2023丨基于 CTC 的模型改进,实现更强的模型结构

分享一篇网易智企易盾 AI Lab 团队在ICASSP 2023被收录的语音识别方向的论文《Improving CTC-based ASR Models with Gated Interplayer Collaboration&#xff08;基于 CTC 的模型改进&#xff0c;实现更强的模型结构&#xff09;》 论文地址&#xff1a;https://arxiv.org/ab…

UnityVR--组件10--UGUI简单介绍

目录 前言 UI基础组件 1. Canvas 2. EventSystem 3. Image 4. Text/TextMeshPro/InputField 5. Button控件 其他 前言 UGUI是Unity推出的新的UI系统&#xff0c;它与Unity引擎结合得更紧密&#xff0c;并拥有强大的屏幕自适应和更简单的深度处理机制&#xff0c;更容易使用和…

从零开始:安装H2数据库的步骤解析

在开发或编写示例时&#xff0c;有时需要用到数据库&#xff0c;如果本机上刚好没有安装&#xff0c;类似有些同学是临时借用的电脑或学校的电脑刚好没有安装时&#xff0c;我们可以使用H2数据库来快速代替&#xff0c;即方便又灵活。 安装和使用H2数据库的步骤如下&#xff1a…

【vue3】11-Vue 3中的Composition Api(一)

Vue3 - composition Api 前言options Api的弊端 认识composition ApiSet up函数的基本使用set up函数的参数set up函数的返回值 Set up中数据的响应式1. Reactive API2. Ref API3. ref和reactive的开发 setup中的其他函数&#xff08;了解&#xff09;setup中禁用this 前言 op…

Ansible自动化运维工具的初步了解及模块使用

1.Ansible的相关知识 1.1 Ansible工具的了解 Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。Ansible能…

tp6安装并使用rabbitMQ

最近因为业务需要,要用到MQ就去研究了一下,说实话,安装环境给我搞自闭了,大概是我太菜 刚开始使用yum换源,各种安装卸载始终找不到自己要用的版本,后来全部卸载,下载安装包 编译安装解百忧 我用的是erlang 25.3 的版本,MQ使用的是3.11.3的版本,符合官方要求,这里的版本是有强…

智能果树叶部疾病识别实践,基于HOG+SVM和轻量级的CNN模型分别开发构建苹果果树叶部疾病识别分析系统

在农业领域中&#xff0c;将机器学习和深度学习模型结合应用有着广泛的实用意义&#xff0c;在这块相关的实践中以往的项目开发实践则是主要集中在农作物种植相关的&#xff0c;今天本文的主要目的就是开发构建果树叶部疾病识别分析系统&#xff0c;这里是以苹果果树叶部疾病数…

springcloud环境搭建

目录 1、创建一个父项目 ​编辑 2、创建子项目 2.1创建订单系统-order ​编辑 2.2创建库存系统-stock 3、创建rest服务 3.1添加web依赖 3.2编写controller 3.3订单中需要调用库存中的扣减库存的接口 通过idea开发工具进行搭建 1、创建一个父项目 通过spring initializr…

Django基础入门:后台管理 超级用户 数据表注册操作③

Django基础入门&#xff1a;后台管理 超级用户 数据表注册操作③ Django Admin数据表后台管理超级用户数据表注册admin操作日志 &#x1f3d8;️&#x1f3d8;️个人简介&#xff1a;以山河作礼。 &#x1f396;️&#x1f396;️:Python领域新星创作者&#xff0c;CSDN实力新星…

使用randoop自动化生成测试用例

1. 综述 使用randoop自动化生成测试用例 2. 操作 下载randoop的jar包&#xff1b;将jar包和所要测试的类&#xff08;如Calculate.class&#xff09;放在同一个文件夹&#xff1b;在此文件夹打开命令行提示符&#xff0c;输入如下命令&#xff1a; java -ea -classpath .;ra…

嵌入式Linux驱动开发 05:阻塞与非阻塞

文章目录 目的基础说明开发准备驱动程序应用程序 O_NONBLOCK应用程序驱动程序程序演示 poll应用程序驱动程序程序演示 异步通知应用程序驱动程序程序演示 总结 目的 不管在应用开发还是驱动开发中阻塞和非阻塞都是绕不开的话题。这篇文章将介绍相关的基础内容。 这篇文章中内…

Redis命令-认识NoSQl和Redis常见的通用命令

1. 认识NoSQL 非关系型数据库 NoSQL是指一类非关系型数据库&#xff0c;它们采用的数据模型不同于传统的关系模型&#xff0c;它通常使用键值对、文档、图形等非传统的数据结构进行数据存储&#xff0c;不遵循预定义的模式和模型。NoSQL数据库通常分布式、高可扩展性&#xff0…

理解Java ThreadLocal

原文链接 理解Java ThreadLocal ThreadLocal是Java提供的为每个线程存储线程独立的数据的存储方式&#xff0c;也就是说用ThreadLocal来保存的数据&#xff0c;只能被当前线程所访问&#xff0c;其他线程无法访问&#xff0c;因为只有&#xff08;一个线程&#xff09;当前线程…