Docker-compose部署Harbor实操(含故障处理)

news2024/11/26 4:51:46

操作环境

Harbor主机系统类型:Centos7
Harbor版本:v2.8.3
Docker-compose版本:1.29.2
Docker版本:

一.Docker及Docker-compose环境安装

官方对Docker及Docker-compose版本有要求,目前我这个主机的版本不适用,那么本章会添加一个对docker升级的操作。如果是没有安装过docker的,可以直接从第2步开始

在这里插入图片描述

1.查看docker版本及安装的软件包,卸载docker。

执行命令:

docker -v
yum list installed | grep docker
yum -y remove docker*

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

2.使用官方一键安装命令进行docker重新安装,发现有报错。

执行命令:

curl -sSL https://get.docker.com/ | sh

在这里插入图片描述

报错信息:

Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest version
+ sh -c 'yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo'
  File "/usr/bin/yum-config-manager", line 135
    except yum.Errors.RepoError, e:
           ^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: multiple exception types must be parenthesized

报错原因:我这台主机的python环境是升级到了python3,使用python的时候默认就使用版本3的,而yum-config-manager这个文件头的Python没有改成Python2,所以导致了报错,修改一下。

执行命令:

vim /usr/bin/yum-config-manager

vi模式下输入i,修改完成后输入:wq 退出保存
在这里插入图片描述

再次执行安装docker命令,安装完成并检查版本

curl -sSL https://get.docker.com/ | sh
docker -v

在这里插入图片描述

3.配置docker-compose

执行命令:

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

先用的国内源的docker-compose,发现部署下来有问题,然后改用GitHub的了
报错信息:

/usr/local/bin/docker-compose: line 1: html: No such file or directory
/usr/local/bin/docker-compose: line 2: syntax error near unexpected token `<'
'usr/local/bin/docker-compose: line 2: `<head><title>502 Bad Gateway</title></head>

新的执行命令:

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v

在这里插入图片描述

二.下载及部署Harbor

在本次实操,Harbor的安装包需要从官网下载,下载地址:
自行选择版本:https://github.com/goharbor/harbor/releases
手动下载的话,在下载页面下拉到最底部,下载第一个文件,我这里使用github镜像加速网站wget下载。
1.安装包下载及证书文件创建

执行命令:

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

在这里插入图片描述
解压文件, 并生成证书,将证书移到指定位置

执行命令:
解压安装包

pwd
tar -zxvf harbor-offline-installer-v2.8.3.tgz

创建证书文件

openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Hubei/L=Wuhan/O=example/OU=Personal/CN=192.168.1.1" \
 -key ca.key \
 -out ca.crt

创建证书目录及移动证书文件

mkdir -p /harbor/data/cert
mv ca* /harbor/data/cert

2.配置Harbor及安装
进入harbor的目录,拷贝Harbor YML原始文件到新文件

执行命令:

cd harbor
cp harbor.yml.tmpl harbor.yml

在这里插入图片描述

vim harbor.yml

在这里插入图片描述
执行prepare脚本启用https服务

cd harbor
./prepare

在这里插入图片描述
执行安装脚本

./install.sh 


可以看到各容器正常运行

docker ps

在这里插入图片描述
3.Harbor配置文件详解
因为后面需要通过默认配置的密码登录,我们通过命令过滤出harbor.yml的有效配置,然后给大家注释看看都是什么意思。

执行命令:

cd /harbor/harbor
grep -vE '^\s*(#|$)' harbor.yml

配置文件有效配置信息,可以自行修改

hostname: 192.168.1.1  # Harbor的主机名或IP地址

http:
  port: 80  # HTTP端口

https:
  port: 443  # HTTPS端口
  certificate: /harbor/data/cert/ca.crt  # HTTPS证书路径
  private_key: /harbor/data/cert/ca.key  # 证书私钥路径

harbor_admin_password: Harbor12345  # Harbor管理员密码

database:
  password: root123  # 数据库密码
  max_idle_conns: 100  # 最大空闲连接数
  max_open_conns: 900  # 最大打开连接数
  conn_max_lifetime: 5m  # 连接最大生命周期
  conn_max_idle_time: 0  # 连接最大空闲时间

data_volume: /data  # 数据存储路径

trivy:
  ignore_unfixed: false  # 是否忽略未修复的漏洞
  skip_update: false  # 是否跳过Trivy更新
  offline_scan: false  # 是否离线扫描
  security_check: vuln  # 安全检查类型
  insecure: false  # 是否允许不安全的连接

jobservice:
  max_job_workers: 10  # 最大作业工作线程数
  logger_sweeper_duration: 1  # 日志清理时间(单位:天)

notification:
  webhook_job_max_retry: 3  # Webhook作业最大重试次数
  webhook_job_http_client_timeout: 3  # Webhook作业HTTP客户端超时时间(单位:秒)

log:
  level: info  # 日志级别
  local:
    rotate_count: 50  # 本地日志轮转数量
    rotate_size: 200M  # 本地日志轮转大小(单位:兆字节)
    location: /var/log/harbor  # 本地日志存储路径

_version: 2.8.0  # Harbor的版本号

proxy:
  http_proxy:  # HTTP代理
  https_proxy:  # HTTPS代理
  no_proxy:  # 不需要代理的主机列表
  components:
    - core
    - jobservice
    - trivy  # 需要代理的组件列表

upload_purging:
  enabled: true  # 是否启用上传清理
  age: 168h  # 清理上传文件的最大年龄(单位:小时)
  interval: 24h  # 清理任务运行间隔(单位:小时)
  dryrun: false  # 是否仅模拟运行清理任务

cache:
  enabled: false  # 是否启用缓存
  expire_hours: 24  # 缓存过期时间(单位:小时)

Harbor启动和停止命令:
在他的docker-compose.yml所在目录执行如下命令:
在这里插入图片描述
关闭服务

docker-compose down

启动服务

docker-compose up -d

三.登录及验证Harbor可用性

在网络可达的其他主机上直接输入他的IP地址即可访问
在这里插入图片描述
登录,账号是admin,密码是配置文件中的harbor_admin_password参数,默认是Harbor12345,登录成功
在这里插入图片描述
创建用户
在这里插入图片描述
登录测试,有报错

执行命令:

docker login 192.168.1.1

在这里插入图片描述
报错信息:

Error response from daemon: Get "https://192.168.1.1/v2/": tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead

故障原因是自生成的证书被Docker认为不可靠的,我做了2个操作,把自生成的证书放入Docker配置文件中,然后将自己的IP或域名加入Docker允许的不安全连接中。

执行命令:

命令解释:切换到docker-compose文件所在目录,关闭harbor服务,再切换到docker配置目录,创建放置证书的目录,把自建证书拷贝过去,然后在docker配置目录中编辑json文件

cd /harbor/harbor
docker-compose down
cd /etc/docker/
mkdir -p cert.d/192.168.1.1
cp /harbor/data/cert/*   /etc/docker/cert.d/192.168.1.1/
vi daemon.json

daemon.json配置信息:

{
  "registry-mirrors": ["https://192.168.1.1"],
  "insecure-registries":["https://192.168.1.1"]
}

再执行命令,启动服务链接测试,输入刚刚创建的新用户

systemctl  restart docker
cd /harbor/harbor
docker-compose up -d
docker login 192.168.1.1

在这里插入图片描述
登录成功!

上传镜像测试

命令格式:

docker tag 镜像名 <Harbor服务器地址>/<仓库名称>/<镜像标签>
docker push <Harbor服务器地址>/<仓库名称>/<镜像标签>

在这里插入图片描述
上传成功~!

下载镜像测试

登录harbor网页,找到镜像,复制拉取命令(注意这里显示的大小不一致是因为有压缩)
在这里插入图片描述
在终端粘贴下载命令执行
在这里插入图片描述
下载成功~!

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

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

相关文章

14k视觉大模型综述

目录 0.导读1.背景介绍1.1基础架构1.2目标函数1.2.1对比式学习1.2.2生成式学习 1.3预训练1.3.1预训练数据集1.3.2微调1.3.3提示工程 2.基于文本提示的基础模型2.1基于对比学习的方法2.1.1基于通用模型的对比方法2.1.2基于视觉定位基础模型的方法 2.2基于生成式的方法2.3基于对比…

springboot邮件任务

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency> 依赖 配置文件 spring.mail.username1393087444qq.com spring.mail.password************* spring.mail.hos…

代码详解 —— VGG Loss

文章目录 VGG Loss 的基础概念VGG 的网络结构VGG LOSS 的代码解析参考 VGG Loss 的基础概念 VGG Loss 是content Loss中的一种。 为了评价图像的perceptual quality&#xff0c;《Perceptual losses for real time style transfer and super-resolution》 和 《GeneratingImag…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 8 日论文合集)

文章目录 一、分割|语义相关(19篇)1.1 Mask Frozen-DETR: High Quality Instance Segmentation with One GPU1.2 AdaptiveSAM: Towards Efficient Tuning of SAM for Surgical Scene Segmentation1.3 SEM-GAT: Explainable Semantic Pose Estimation using Learned Graph Atten…

【Vue-Router】路由传参

1. query 传参 list.json {"data": [{"name": "面","price":300,"id": 1},{"name": "水","price":400,"id": 2},{"name": "菜","price":500,"…

eachars 自适应

目录 1. 案例&#xff1a; 2. 原因&#xff1a; 3. 解决&#xff1a; 1. 案例&#xff1a; 默认是正常宽度&#xff08;如图1&#xff09;&#xff0c;当再次跳转会该页面时&#xff0c;eachars图发生变化&#xff08;如图2&#xff09;。 图1 图2 2. 原因&#xff1a; 没有…

三维模型OSGB格式轻量化在三维展示效果上的重要性探讨

三维模型OSGB格式轻量化在三维展示效果上的重要性探讨 三维模型在展示中的效果是十分关键的&#xff0c;因为它直接影响用户对模型的理解和体验。而OSGB格式轻量化是实现优质三维展示效果的关键技术之一。下面将详细介绍轻量化OSGB格式的三维模型在三维展示效果上的重要性。 首…

“多测合一”生产软件-不动产测量(不动产权籍调查测绘软件RESS),房地一体化测量由请湖南来示范

湖南“多测合一”生产软件-不动产测量软件&#xff0c;提取码&#xff1a;RESShttps://pan.baidu.com/s/1OqakLJICIP6buNiZ6j9Npw?pwdRESS 2020年7 月&#xff0c;国务院办公厅印发《 国务院办公厅关于进一步优化营商环境 更好服务市场主体的实施意见》 &#xff08;国办发〔 …

Android之SQLite数据库的使用总结

一、SQLite数据库基本使用 1、特点 &#xff08;1&#xff09;嵌入式数据库&#xff0c;体积小 &#xff08;2&#xff09;数据库是由底层的sqlite.c执行程序的代码动态生成的&#xff0c;不用人为去创建数据库 &#xff08;3&#xff09;涉及抽象类SQLiteOpenHelper 2、继承…

【Java从0到1学习】08 String类

1. 概述 字符串是由多个字符组成的一串数据(字符序列)&#xff0c;字符串可以看成是字符数组。 在实际开发中&#xff0c;字符串的操作是最常见的操作&#xff0c;没有之一。而Java没有内置的字符串类型&#xff0c;所以&#xff0c;就在Java类库中提供了一个类String 供我们…

如何使用CSS实现一个响应式网格布局?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现响应式网格布局⭐ 设置基本的HTML结构⭐ 创建基本的CSS样式⭐ 添加媒体查询以实现响应式效果⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端…

成集云 | 用友U8采购请购单同步钉钉 | 解决方案

源系统成集云目标系统 方案介绍 用友U8是中国用友集团开发和推出的一款企业级管理软件产品。具有丰富的功能模块&#xff0c;包括财务管理、采购管理、销售管理、库存管理、生产管理、人力资源管理、客户关系管理等&#xff0c;可根据企业的需求选择相应的模块进行集…

Oracle 增加重做日志组、组成员

重做日志文件记录数据所有的修改信息并提供一种数据库失败时的恢复机制 一个Oracle数据库要求至少有两组重做日志文件 组中每个日志文件被称作一个组成员 需求&#xff1a;目前有三组重做日志组&#xff0c;增加一个重做日志组、并且增加两个重做日志组成员 1、查看重做日志组…

Python实现SSA智能麻雀搜索算法优化循环神经网络回归模型(LSTM回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法&#xff0c;在2020年提出&a…

日志采集分析ELK

这里的 ELK其实对应三种不同组件 1.ElasticSearch&#xff1a;基于Java&#xff0c;一个开源的分布式搜索引擎。 2.LogStash&#xff1a;基于Java&#xff0c;开源的用于收集&#xff0c;分析和存储日志的工具。&#xff08;它和Beats有重叠的功能&#xff0c;Beats出现之后&a…

什么是集成测试?集成测试方法有哪些?

1、基本概念&#xff1a; 将软件集成起来后进行测试。集成测试又叫子系统测试、组装测试、部件测试等。集成测试主要是针对软件高层设计进行测试&#xff0c;一般来说是以模块和子系统为单位进行测试。 2、集成测试包含的层次&#xff1a; 1&#xff09;模块内的集成&#x…

浅谈防火门监控系统的设计和安装

安科瑞 华楠 摘要&#xff1a;随着现代建筑中火灾成为重要的安全隐患&#xff0c;消防得到了越来越多民众的关注。更好地完成建筑消防设计成为了建筑电气设计中的重要一环。防火门监控系统是《火灾自动报警系统设计规范》(GB50116-2013)中规定在建筑中设置的火灾自动报警系统子…

h3c radius认证测试

客户端ssh连接上交换机进行管理&#xff0c;用radius里面的用户名和密码进行登陆 dis current-configuration vlan 1 vlan 2 interface Vlan-interface1 ip address 192.168.0.105 255.255.255.0 interface Vlan-interface2 ip address 192.168.60.244 255.255.255.0 interfac…

怎么样提升科研水平?

第15期《求是》杂志发表中强调加强基础研究&#xff0c;是实现高水平科技自立自强的迫切要求&#xff0c;是建设世界科技强国的必由之路。强化党建引领&#xff0c;为提升科研水平定向护航。 前一阵&#xff0c;广西审计厅发布的报告揭示了科研经费1.3亿&#xff0c;成果转化为…

CVPR 2023 | 用户可控的条件图像到视频生成方法(基于Diffusion)

注1:本文系“计算机视觉/三维重建论文速递”系列之一&#xff0c;致力于简洁清晰完整地介绍、解读计算机视觉&#xff0c;特别是三维重建领域最新的顶会/顶刊论文(包括但不限于 Nature/Science及其子刊; CVPR, ICCV, ECCV, NeurIPS, ICLR, ICML, TPAMI, IJCV 等)。 本次介绍的论…