828华为云征文 | Flexus X实例与Harbor私有镜像仓库的完美结合

需要了解

  • 本文章主要讲述在 华为云Flexus X 实例上搭建自己的企业级私有镜像仓库 Harbor,一键部署、搭建高可用安全可靠的容器镜像仓库
  • 选择合适的云服务器: 本文采用的是 华为云服务器 Flexus X 实例(推荐使用)
  • 连接方式: 本文通过本地shell 方式,通过弹性IP 远程连接至服务器,进行部署搭建
  • 操作系统版本: Huawei Cloud EulerOS 2.0
  • Docekr版本: Docker v27.1.1
  • Docekr-compose版本: Docker Compose v2.29.1
  • Harbor版本: harbor v2.7.1
  • Docekr搭建可参考文章: 华为FlexusX与Docker+Nginx的高效整合之路
  • 服务器购买链接:华为云服务器 Flexus X 实例
  • 详细购买配置实例可参考文章: 快速部署华为云Flexus X实例,开启您的云端之旅
  • 部署期间所需资料文件都可私信进行获取

Harbor介绍

Harbor是一个开源的企业级Registry服务器,用于管理和存储Docker镜像和OCI容器镜像。作为一个高可用、安全可靠的容器镜像仓库,Harbor提供了丰富的功能和管理工具,以帮助组织有效地构建和管理容器镜像。

在这里插入图片描述

Harbor架构及特点

在这里插入图片描述

开源与社区支持: Harbor是开源的,这意味着其源代码是公开的,并且社区成员可以自由地贡献代码、修复漏洞和增强功能。

企业级功能: Harbor提供了比Docker官方Registry更丰富的企业级功能,如用户管理、权限控制、镜像签名和验证、漏洞扫描等。

多租户支持: Harbor支持多租户环境,允许不同的用户或组织拥有私有的镜像仓库。

容器化部署: Harbor以容器化的形式提供,这意味着它可以在任何支持Docker的平台上运行。

Flexus X实例上搭建Harbor的好处

高性能与灵活性: Flexus X实例作为华为云推出的下一代柔性算力云服务器,具有卓越的性能表现。通过X-Turbo加速技术和瑶光云脑智能调度,Flexus X实例能够显著提升Harbor的运行效率,确保镜像仓库的稳定性和高效性。

快速部署: Flexus X实例支持快速部署和一键操作,用户可以在短时间内完成Harbor的搭建和配置工作,提高业务上线的速度。

良好兼容性: Flexus X实例支持多种操作系统和镜像类型,包括Huawei Cloud EulerOS 2.0等公共镜像,能够满足Harbor在不同操作系统环境下的运行需求。

系统设置

关闭防火墙和selinux

[root@flexusx-251f ~]# systemctl stop  firewalld.service
[root@flexusx-251f ~]# systemctl disable firewalld.service
[root@flexusx-251f ~]# setenforce 0

安装docekr

Docekr搭建可参考文章: 华为FlexusX与Docker+Nginx的高效整合之路

Harbor安装

下载安装包并解压

Harbor安装包下载地址,下载之后可通过远程工具进行传包

[root@flexusx-251f ~]# mkdir harbor
[root@flexusx-251f ~]# cd harbor/
[root@flexusx-251f harbor]# ls
harbor-offline-installer-v2.7.0.tgz[root@flexusx-251f harbor]# tar -zxvf harbor-offline-installer-v2.7.1.tgz
harbor/harbor.v2.7.1.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl

配置Harbor

修改harbor.yml

[root@flexusx-251f harbor]# ls
harbor  harbor-offline-installer-v2.7.1.tgz
[root@flexusx-251f harbor]# cd harbor/
[root@flexusx-251f harbor]# ls
common.sh  harbor.v2.7.1.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare
[root@flexusx-251f harbor]# cp harbor.yml.tmpl harbor.yml
[root@flexusx-251f harbor]# vim harbor.yml
# 修改主机名为本机ip地址
# 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: 123.249.27.118# 修改端口号为4000,可以自定义
# http related config
http:# port for http, default is 80. If https enabled, this port will redirect to https portport: 4000# 注释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

修改docker.service

[root@flexusx-251f harbor]# vim /lib/systemd/system/docker.service# #在 ExecStart 参数后面添加 --insecure-registry=123.249.27.117:4000
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=123.249.27.117:4000# 重新启动docker服务
[root@flexusx-251f harbor]# systemctl daemon-reload
[root@flexusx-251f harbor]# systemctl restart docker.service

导入离线镜像

[root@flexusx-251f harbor]# ls
harbor  harbor-2.7.1.tar  harbor-offline-installer-v2.7.1.tgz
[root@flexusx-251f harbor]# docker load -i harbor-2.7.1.tar[root@flexusx-251f harbor]# docker images
REPOSITORY                                                          TAG       IMAGE ID       CREATED         SIZE
goharbor/harbor-exporter                                            v2.7.1    d40eb452ec72   18 months ago   96.5MB
goharbor/chartmuseum-photon                                         v2.7.1    e6ab349a4f12   18 months ago   227MB
goharbor/redis-photon                                               v2.7.1    229dd1844a26   18 months ago   127MB
goharbor/trivy-adapter-photon                                       v2.7.1    729fab8418df   18 months ago   442MB
goharbor/notary-server-photon                                       v2.7.1    12adb40b7a3b   18 months ago   113MB
goharbor/notary-signer-photon                                       v2.7.1    f114329e0165   18 months ago   110MB
goharbor/harbor-registryctl                                         v2.7.1    9b2219d529c8   18 months ago   140MB
goharbor/registry-photon                                            v2.7.1    9d50b10d3700   18 months ago   78.1MB
goharbor/nginx-photon                                               v2.7.1    e98018335c0d   18 months ago   126MB
goharbor/harbor-log                                                 v2.7.1    eeb93d98a358   18 months ago   133MB
goharbor/harbor-jobservice                                          v2.7.1    829d13e6aae7   18 months ago   252MB
goharbor/harbor-core                                                v2.7.1    49d6c8a15d6c   18 months ago   215MB
goharbor/harbor-portal                                              v2.7.1    fe05b1b0bcfd   18 months ago   135MB
goharbor/harbor-db                                                  v2.7.1    b3f8d9d6c213   18 months ago   174MB
goharbor/prepare                                                    v2.7.1    d9e019294af2   18 months ago   164MB

运行脚本prepare准备镜像

[root@flexusx-251f harbor]# ./prepare
prepare base dir is set to /root/harbor/harbor
WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
Generated configuration file: /config/portal/nginx.conf
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
Generated and saved secret to file: /data/secret/keys/secretkey
Successfully called func: create_root_cert
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir

检查脚本命令

我们系统中docker compose的命令为 docker-compose,和脚本中相同

如果不同需要修改common.sh 和 install.sh中的 docker-compose

# 检查 common.sh
[root@flexusx-251f harbor]# vim common.sh 
119         elif [[ $(docker-compose --version) =~ (([0-9]+)\.([    0-9]+)([\.0-9]*)) ]]# 检查 install.sh
[root@flexusx-251f harbor]# vim install.sh 26 DOCKER_COMPOSE=docker-compose

安装Harbor

[root@flexusx-251f harbor]# ./install.sh# 部分日志流记录
[Step 0]: checking if docker is installed ...Note: docker version: 27.1.1[Step 1]: checking docker-compose is installed ...Note: Docker Compose version v2.29.1[Step 2]: loading Harbor images ...
.....................it will be ignored, please remove it to avoid potential confusion
[+] Running 10/10✔ Network harbor_harbor        Created                                           0.0s✔ Container harbor-log         Started                                           0.3s✔ Container harbor-portal      Started                                           0.4s✔ Container harbor-db          Started                                           0.4s✔ Container registryctl        Started                                           0.5s✔ Container redis              Started                                           0.5s✔ Container registry           Started                                           0.4s✔ Container harbor-core        Started                                           0.6s✔ Container nginx              Started                                           0.7s✔ Container harbor-jobservice  Started                                           0.7s
✔ ----Harbor has been installed and started successfully.----

登录Harbor

在控制台配置安全组规则,放行 4000 端口

在这里插入图片描述

默认管理员账号 admin,密码为 harbor.yml 文件中的自定义密码

登录访问 : http://主机地址:4000

在这里插入图片描述

测试

创建项目

访问级别设置为 公开,可以进行匿名拉取,存储容量默认 -1表示大小没有限制

在这里插入图片描述

推送镜像

进入项目后,在右上角推送命令中可查看操作语句,注意推送镜像之前需要身份认证

在这里插入图片描述

# 标记镜像
[root@flexusx-251f harbor]# docker tag mysql:latest 123.249.27.118:4000/mycloud/mysql:latest[root@flexusx-251f harbor]# docker images | grep mysql
mysql                                                               5.7       87eca374c0ed   3 years ago     447MB
123.249.27.118:4000/mycloud/mysql                                   latest    8457e9155715   3 years ago     546MB
mysql                                                               latest    8457e9155715   3 years ago     546MB# 登录仓库(身份验证)
[root@flexusx-251f harbor]# docker login 123.249.27.118:4000
Username: admin
Password:
Error response from daemon: Get "https://123.249.27.118:4000/v2/": http: server gave HTTP response to HTTPS client

报错处理,修改客户端/etc/docker/daemon.json,增加 insecure-registries 内容

[root@flexusx-251f harbor]# vim /etc/docker/daemon.json
[root@flexusx-251f harbor]# cat /etc/docker/daemon.json
{"registry-mirrors": [ "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com" ],"insecure-registries": [ "123.249.27.118:4000" ]
}[root@flexusx-251f harbor]# systemctl daemon-reload
[root@flexusx-251f harbor]# systemctl restart docker.service[root@flexusx-251f harbor]# docker login 123.249.27.118:4000
Username: admin
Password: 
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-storeLogin Succeeded# 推送镜像(可在web页面进行查看)
[root@flexusx-251f harbor]# docker push  123.249.27.118:4000/mycloud/mysql:latest# 拉取镜像
docker pull  123.249.27.118:4000/mycloud/mysql:latest

搭建完成,此刻你就拥有了属于自己的私有镜像仓库

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

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

相关文章

ctfshow-PHP特性

web89 <?php include("flag.php"); highlight_file(_FILE_);if(isset($_GET[num])){$num$_GET[num];if(preg_match("/[0-9]/",$num)){die("no no no"); #结束脚本呢执行输出指定信息}if(intval($num)){#把参数转换整数类型echo $flag;} } pr…

用面向对象的方法进行数据分析

项目从两个不同类型的文件&#xff08;文本文件和 JSON 文件&#xff09;读取销售数据&#xff0c;将其封装为 Record 对象&#xff0c;合并数据后&#xff0c;统计每天的销售总额&#xff0c;并通过 pyecharts 库生成一个包含每日销售额的柱状图&#xff08;Bar chart&#xf…

无线感知会议系列【1】【增强无线感知应用的鲁棒性】

前言&#xff1a; 这个是2021年 泛在可信智能感知论坛&#xff0c;汤战勇 &#xff08;西北大学物联网研究院 )教授的 一个讲座《wireless signals like WiFi, RFID and (ultra) sound as a powerful modality for ubiquitous sensing》 参考连接&#xff1a; 4.见微知萌—…

ollama 本地部署

ollama 本地模型部署 下载安装: [link](https://ollama.com/download)下载说明 部署使用在终端查看ollama是否安装完成终端查看ollama 命令说明查看当前支持下载的模型启动对话模式默认情况下&#xff0c;ollama启动了server 的api访问功能 外部 api访问使用postman网页版本for…

什么是Aware注入?

Spring容器可以在Bean初始化的时候&#xff0c;自动注入一些特定信息&#xff08;如beanfactory&#xff09;,使得bean可以轻松的访问其他Bean的实例&#xff0c;简化代码&#xff0c;避免了显式的注入。 Spring提供了很多Aware的接口,如下&#xff1a; 拿其中的BeanFactoryAwa…

全频段覆盖的卫星通信模块-灵活应对多应用场景

LoRa1121是采用SEMTECH的LR1121芯片&#xff0c;这是一款超低功耗、远程LoRa收发器&#xff0c;支持Sub-GHz和全球2.4GHz频谱中的地面ISM频段通信&#xff0c;且支持用于卫星连接的S频段。LoRa1121支持LoRa&#xff0c;(G)FSK调制&#xff0c;Sigfox协议&#xff0c;以及&#…

SRS流媒体服务器从入门到精通(其一,环境搭建)

欢迎诸位来阅读在下的博文~ 在这里&#xff0c;在下会不定期发表一些浅薄的知识和经验&#xff0c;望诸位能与在下多多交流&#xff0c;共同努力! 江山如画&#xff0c;客心如若&#xff0c;欢迎到访&#xff0c;一展风采 文章目录 一、SRS简介二、SRS的应用场景三、环境搭建…

Leetcode - 周赛414

目录 一&#xff0c;3280. 将日期转换为二进制表示 二&#xff0c;3281. 范围内整数的最大得分 三&#xff0c;3282. 到达数组末尾的最大得分 四&#xff0c;3283. 吃掉所有兵需要的最多移动次数 一&#xff0c;3280. 将日期转换为二进制表示 本题就是简单的字符串和整数之…

爆改YOLOv8|利用yolov9的ADown改进卷积Conv-轻量化

1&#xff0c;本文介绍 本文将利用YOLOv9的ADown模块改进卷积。 关于ADown的详细介绍可以看论文&#xff1a;https://arxiv.org/abs/2402.13616 本文将讲解如何将ADown融合进yolov8 话不多说&#xff0c;上代码&#xff01; 2&#xff0c; 将ADown融合进yolov8 2.1 步骤一…

【高中物理】用代码缩写胡克定律公式原理图

用代码缩写胡克定律公式原理图 代码实现了以下功能&#xff1a; 交互式滑块&#xff1a;用户可以通过滑块调整弹簧的弹性系数&#xff08;k&#xff09;、拉力大小&#xff08;F&#xff09;和弹簧的原长&#xff08;l0&#xff09;&#xff0c;实时观察弹簧的伸长和受力变化。…

在VB.net中,TimeSpan有什么属性与方法

标题 在VB.net中&#xff0c;TimeSpan有什么属性与方法 正文 在 VB.NET 中&#xff0c;TimeSpan 结构表示时间间隔&#xff0c;即一段时间&#xff0c;而不表示特定的时间点。TimeSpan 提供了多种属性来获取时间间隔的各个组成部分&#xff0c;以及一些方法来操作这些时间间隔。…

【观察者】设计模式:构建灵活且响应式的软件系统

引言 在软件开发中&#xff0c;我们经常面临需要在多个对象之间进行通信的挑战。特别是当一个对象的状态发生变化时&#xff0c;我们希望所有依赖于这个状态的对象都能自动更新。这就是观察者设计模式大显身手的地方。 简介 观察者模式是一种行为设计模式&#xff0c;它定义…

基于vue框架的城市交通管理系统的设计与实现9fcck(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,区域,车站信息,公交线路 开题报告内容 基于Vue框架的城市交通管理系统的设计与实现开题报告 一、研究背景与意义 1.1 研究背景 随着城市化进程的加速&#xff0c;城市交通问题日益严峻&#xff0c;包括交通拥堵、交通事故频发、…

“CSDN独家揭秘:AIGC技术在AI绘画领域的应用与学习攻略”

导语&#xff1a;人工智能的发展正推动着内容创作的革新&#xff0c;AIGC&#xff08;AI Generated Content&#xff09;技术便是其中的佼佼者。本文将带您领略AIGC在AI绘画领域的魅力&#xff0c;并分享一些学习资源和路径&#xff0c;助您在艺术与技术交汇的旅途中更进一步。…

山东省行政执法证照片要求及图像处理方法

在山东省&#xff0c;行政执法证是执法人员身份的重要标识&#xff0c;其照片的规范性对于证件的有效性至关重要。本文将详细介绍山东省行政执法证照片的要求&#xff0c;并提供使用手机相机拍照的实用方法&#xff0c;以确保照片符合标准。 一、山东省行政人员执法证照片拍摄要…

表情迁移大法,LivePortrait 帮你快速处理图片!

LivePortrait 由快手可灵大模型团队开源&#xff0c;主要功能包括从单一图像生成生动动画、精确控制眼睛和嘴唇的动作、处理多个人物肖像的无缝拼接、支持多风格肖像、生成高分辨率动画等。该项目使用的是基于隐式关键点框架的 AI 肖像动画生成框架。它能够将驱动视频的表情和姿…

sql语句的训练2024/9/9

1题 需要看清思路&#xff1a;不是将数据库中的device_id的名字改为user_infors_example&#xff0c;而是在查找的时候&#xff0c;需要将device_id看成user_infors_example来进行查找。 答案 select device_id AS user_infos_example FROM user_profile limit 2 2 当固定查找…

Leangoo敏捷工具在缺陷跟踪(BUG)管理中的高效应用

在开发过程中&#xff0c;缺陷&#xff08;BUG&#xff09;管理一直是项目管理中的一个关键环节。及时发现并修复BUG&#xff0c;不仅能够提高产品质量&#xff0c;还能有效提升团队的工作效率和用户满意度。 在敏捷开发中&#xff0c;快速迭代和频繁交付的特点使得缺陷管理的…

2024.09.04【读书笔记】|如何使用Tombo进行Nanopore Direct RNA-seq(DRS)分析

文章目录 Tombo快速使用介绍模型介绍RNA修饰分析步骤特异性替代碱基检测&#xff08;推荐&#xff09;De novo canonical model comparison ONT全长转录组分析步骤疑难解答Minimap2在比对nanopore直接RNA-seq数据时的最佳实践和参数设置有哪些&#xff1f;featureCounts在进行R…

红米K60U/K50/Note11TPro澎湃OS无法绑定账号解锁BL-不能激活小米账号

小米澎湃OS对于解锁BL&#xff0c;新增了各种限制&#xff0c;早前我们还能使用bypass脚本来实现澎湃OS上绑 定账号成功&#xff0c;但随着澎湃OS七月系统上的推送&#xff0c;旧版的bypass已经彻底失效&#xff0c;并且无法安装 旧版的设置APK来解决问题。此次涉及的机型有红米…