docker仓库--centos7.9部署harbor详细过程与使用以及常见问题

文章目录

  • 前言
    • 1.docker-compose是什么
    • 2.harbor是什么
  • centos7部署harbor详细过程与使用
    • 环境
      • 一、部署docker
      • 二、部署harbor
        • 1.下载docker-compose工具
        • 2.harbor安装
        • 3.拷贝样本文件,并修改文件
        • 4.安装harbor,安装完成自行启动
        • 5.查看
      • 三、harbor的使用
        • 1.创建项目
        • 2.上传
        • 2.下载操作


前言

在部署harbor之前,我们需要简单了解两个比较重要的知识点

1.docker-compose是什么

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。它通过一个简单的配置文件来描述应用的服务、网络和卷等,并提供一组命令来管理这些服务。

2.harbor是什么

Harbor 是一个开源的容器镜像仓库管理工具。它为存储和管理 Docker 镜像提供了一个安全、可靠的环境,并增强了镜像的管理能力。

centos7部署harbor详细过程与使用

环境

虚拟机

Ip主机名cpu内存硬盘
192.168.10.11vm12cpu两核2G100G
192.168.10.18harbor1cpu一核2G100G

11用来下载harbor服务的镜像
版本 centos7.9

一、部署docker

wget -O /etc/yum.repos.d/docker-ce.repo  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum  -y  install docker-ce-20.10.20 
systemctl enable docker
systemctl start docker
docker version

出现这个代表安装成功 显示的是客户端和服务器的版本信息
在这里插入图片描述

二、部署harbor

1.下载docker-compose工具
wget https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64

如果提示没有wget,输入以下命令

yum -y install wget

下载完成之后,移动到/usr/local/bin/目录

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

增加可执行权限

chmod +x /usr/local/bin/docker-compose

查看版本号,并验证命令可用

docker-compose -v

如果顺利的话,就能看到版本
在这里插入图片描述
注:如果报错,把docker-compose删除,重新下载,重复以上步骤即可

2.harbor安装

下载压缩包

wget https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.8.3.tgz 

将harbor包解压到/usr/local/下

tar xf harbor-offline-installer-v2.8.3.tgz -C /usr/local/
cd /usr/local/harbor
3.拷贝样本文件,并修改文件
cp harbor.yml.tmpl harbor.yml
vim harbor.yml

修改处
hostname后面改成本机ip
将https的都注释掉,因为harbor通常不考虑对外提供服务,大多数都是对内提供服务

修改前
在这里插入图片描述
修改后
在这里插入图片描述

4.安装harbor,安装完成自行启动
./prepare
./install.sh

在这里插入图片描述
其实最终harbor还是由一个个容器组成一个架构,实现私有仓库的功能
我们可以查看docker ps一下

docker ps

在这里插入图片描述

5.查看

宿主机浏览器访问192.168.10.18即可
在这里插入图片描述
你就会看到登录界面
默认账号
admin
默认密码
Harbor12345
登录即可
在这里插入图片描述

三、harbor的使用

1.创建项目

在这里插入图片描述
我们来创建一个名为nginx的项目
在这里插入图片描述

可以看到新创建出来的项目
在这里插入图片描述

2.上传

harbor本地服务器上传镜像

更改docker配置文件

vim /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.10.18"]
}

重新加载systemd、重启docker服务,重启harbor服务

systemctl daemon-reload
systemctl restart docker
cd /usr/local/harbor
docker-compose restart

注:harbor重启失败 | web页面访问不到 | 密码或账号输入不对(确定自己输入对了) 就再重启几次,
如果一直不行且harbor仓库里无重要镜像,直接在harbor目录

,/install

即可

注:指定多个私有仓库时, “insecure-registries”: [“192.168.10.11”,“192.168.10.12:5000”]

登录
在这里插入图片描述

上传私有镜像
下载一个镜像用来上传,这里使用的是nginx:latest镜像

docker pull nginx:latest

如果要把镜像上传到harbor
镜像名称要修改成:私有仓库ip/项目名称/镜像名称

docker tag nginx:latest 192.168.10.18/nginx/nginx1:v1

上传

docker push 192.168.10.18/nginx/nginx1:v1

在这里插入图片描述

在web页面查看
可以看到nginx项目的镜像的镜像数变成了1在这里插入图片描述

点击nginx
在这里插入图片描述
就能看见镜像了
再点击nginx/nginxv1
在这里插入图片描述
就能看见版本了
在这里插入图片描述

2.下载操作

其他内部服务器上传操作同上,区别仅有不重启harbor服务
这里以192.168.10.11举例
安装docker

wget -O /etc/yum.repos.d/docker-ce.repo  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum  -y  install docker-ce-20.10.20 
systemctl enable docker
systemctl start docker
docker version

更改docker配置文件

vim /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.10.18"]
}

重新加载systemd、重启docker服务,重启harbor服务

systemctl daemon-reload
systemctl restart docker

登录
在这里插入图片描述
下载harbor镜像

docker pull 192.168.10.18/nginx/nginx1:v1

因为是内部服务,下载速度应该很快
在这里插入图片描述

查看一下

docker images

可以看到已经下载下来了
在这里插入图片描述
web页面也可以看到下载数变成了1
在这里插入图片描述
完成

常见问题写在了过程里面
如果对您有帮助可以点点关注和点赞

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

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

相关文章

「C++系列」C++ 数据类型

文章目录 一、C 数据类型二、C 数据类型占位与范围三、类型转换1. 隐式类型转换(Automatic Type Conversion)2. 显式类型转换(Explicit Type Conversion)3. 示例代码 四、数据类型案例1. 整型2. 浮点型3. 字符型4. 布尔型5. 枚举类…

Redis基础教程(四):redis键(key)

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

论文阅读之旋转目标检测ARC:《Adaptive Rotated Convolution for Rotated Object Detection》

论文link:link code:code ARC是一个改进的backbone,相比于ResNet,最后的几层有一些改变。 Introduction ARC自适应地旋转以调整每个输入的条件参数,其中旋转角度由路由函数以数据相关的方式预测。此外,还采…

【PL理论深化】(13) 变量与环境:文法结构 | 真假表达式:isZero E | let 表达式叠放 | 定义的规则 | 条件语句的使用

💬 写在前面:从现在开始,让我们正式设计和实现编程语言。首先,让我们扩展在之前定义的整数表达式语言,以便可以使用变量和条件表达式。 目录 0x00 文法结构 0x01 真假表达式:isZero E 0x02 let 表达式叠…

Leetcode 78 数组子集

题目描述: 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的 子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums [1,2,3] 输出&#xff1…

Python-数据分析组合可视化实例图【附完整源码】

数据分析组合可视化实例图 开篇:应女朋友的要求,于是写下了这篇详细的数据可视化代码及完整注释 一:柱状图、折线图横向组合网格布局 本段代码使用了pyecharts库来创建一个包含多个图表(柱状图、折线图)和网格布局的…

服装分销的系统架构

背景 服装的分销规则:组织结构由总公司代理商专卖店构成。总公司全权负责销售业务,并决定给代理商的份额;代理商再给货到专卖店,整个组织机构呈现树状结构;上级机构对下级机构拥有控制权,主要控制其销售的服…

利用谷歌云serverless代码托管服务Cloud Functions构建Gemini Pro API

谷歌在2024年4月发布了全新一代的多模态模型Gemini 1.5 Pro,Gemini 1.5 Pro不仅能够生成创意文本和代码,还能理解、总结上传的图片、视频和音频内容,并且支持高达100万tokens的上下文。在多个基准测试中表现优异,性能超越了ChatGP…

MySQL高阶:事务和并发

事务和并发 1. 事务创建事务 2. 并发和锁定并发问题 3. 事务隔离等级3.1 读取未提交隔离级别3.2 读取已提交隔离级别3.3 重复读取隔离级别3.4 序列化隔离级别 4. 死锁 1. 事务 事务(trasaction)是完成一个完整事件的一系列SQL语句。这一组SQL语句是一条…

植物大战僵尸融合版2024最新版本登场,绝对能满足你的所有期待!

一开场,就让我们直切主题。各位玩家,是否已对《植物大战僵尸》中的传统植物和僵孠对决失去了新鲜感?是否渴望体验更具创意、更富挑战性的游戏玩法?那么,让我来告诉你,《植物大战僵尸融合版》1新版本的登场&…

AI论文速读 | 2024[KDD]ASeer基于异步时空图卷积网络的不规则交通时间序列预测

题目:Irregular Traffic Time Series Forecasting Based on Asynchronous Spatio-Temporal Graph Convolutional Network 作者:Weijia Zhang, Le Zhang, Jindong Han(韩金栋), Hao Liu(刘浩), Jingbo Zhou…

纯硬件FOC驱动BLDC

1. 硬件FOC 图 1 为采用 FOC 的方式控制 BLDC 电机的过程,经由 FOC 变换( Clark 与 Park 变换) ,将三相电流转换为空间平 行电流 ID 与空间垂直电流 IQ。经过 FOC 逆变化逆( Clark 变换与逆 Park 变换) ,将两相电流转换为三相电流用于控 制电…

容器:deque

以下是对于deque容器知识的整理 1、构造 2、赋值 3、大小操作 4、插入 5、删除 6、数据存取 7、排序 #include <iostream> #include <deque> #include <algorithm> using namespace std; /* deque容器&#xff1a;双端数组&#xff0c;可以对头端进行插入删…

网页用事件监听器播放声音

一、什么是监听器&#xff1a; 在前端页面中&#xff0c;事件监听器&#xff08;Event Listener&#xff09;是一种编程机制&#xff0c;它允许开发者指定当特定事件&#xff08;如用户点击按钮、鼠标悬停、页面加载完成等&#xff09;发生时执行特定的代码块。简而言之&#x…

clonezilla(再生龙)克隆物理机linux系统,然后再去另一台电脑安装

前言: 总共需要2个u盘,一个装再生龙系统,一个是使用再生龙把硬盘备份到另一个盘里面,恢复的时候,先使用再生龙引导,然后再插上盘进行复制 1.制作启动u盘 1.1下载再生龙Clonezilla 下載 1.2下载UltraISO(https://cn.ultraiso.net/uiso9_cn.exe) 1.3 打开UltraISO,选择co…

Vue 解决报错 VM6290:1 Uncaught SyntaxError: Unexpected identifier ‘Promise‘

Vue 报错 VM6290:1 Uncaught SyntaxError: Unexpected identifier ‘Promise’ 排查 控制台报了一个错误 , Uncaught SyntaxError: Unexpected identifier ‘Promise’&#xff0c;网上查到的方法是 缺少符号&#xff0c;语法写法错误&#xff0c;但这些都没有解决我的问题&am…

用Lobe Chat部署本地化, 搭建AI聊天机器人

Lobe Chat可以关联多个模型&#xff0c;可以调用外部OpenAI, gemini,通义千问等, 也可以关联内部本地大模型Ollama, 可以当作聊天对话框消息框来集成使用 安装方法参考&#xff1a; https://github.com/lobehub/lobe-chat https://lobehub.com/zh/docs/self-hosting/platform/…

RCE漏洞

RCE&#xff08;Remote code/command execution&#xff09;&#xff0c;远程代码执行和远程命令执行。在很多web应用开发的过程中&#xff0c;程序员可能在代码中编写一些能够运行字符串的函数&#xff0c;当用户可以控制输入内容时&#xff0c;这就导致了RCE漏洞。 1 远程代…

《昇思25天学习打卡营第4天|数据集 Dataset》

文章目录 前言&#xff1a;今日所学&#xff1a;1. 数据集加载2. 数据集迭代3. 数据集常用操作与自定义数据集 前言&#xff1a; 今天学习的是数据集的内容。首先&#xff0c;数据是深度学习的基石&#xff0c;高质量的数据输入能够在整个深度神经网络中发挥积极作用。MindSpo…

安全和加密常识(6)Base64编码方式

文章目录 什么是 Base64编码原理编解码示例应用什么是 Base64 Base64 是一种用于将二进制数据编码为仅包含64种ASCII字符的文本格式的编码方法,注意,它不是加密算法。它设计的目的主要是使二进制数据能够通过只支持文本的传输层(如电子邮件)进行传输。Base64常用于在需要处…