搭建企业级docker仓库—Harbor

news2024/11/17 7:31:51

一、简介

docker 官方提供的私有仓库 registry,用起来虽然简单 ,但在管理的功能上存在不足。 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。

二、安装

2.1、环境

linux centos8
192.168.182.152

2.2、下载地址:
可以在GitHub上下载离线安装包:

地址:https://github.com/goharbor/harbor/releases

下载可能会很慢,可以从我的百度云下载:

链接:https://pan.baidu.com/s/1mvLMFFPuR7fHv_AfUK2Rhw
提取码:8888

2.3、安装docker-compose(Harbor是通过docker compose来部署的)
1)配置阿里的epel源

# 这里我下载的是centos8的,根据不同环境下载不同的版本
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/Centos-8.repo

2)安装并升级Python-pip

$ yum install python3-pip
$ pip3 install --upgrade pip

3)安装docker-compose

$ pip3 install docker-compose

4)查看docker-compose版本

$ docker-compose --version

2.4、解压下载的安装包

$ mkdir -p /opt/harbor
$ mv harbor-offline-installer-v2.3.1.tgz /opt/harbor/
$ cd /opt/harbor
$ tar -xvf harbor-offline-installer-v2.3.1.tgz

2.4、修改配置文件harbor.conf

$ cd /opt/harbor/harbor
# 拷贝一个配置文件
$ cp harbor.yml.tmpl harbor.yml
# 创建持久化数据目录
$ mkdir -p /opt/harbor/data

完整配置harbor.yml

#由于配置太多,我就把空行和注释去掉了
$ grep -v '^$\|#' harbor.yml

只改了hostname、data_volume,把https注释掉,如果需要配置https可以保留,我这里只使用http,其它默认就行。

hostname: 192.168.182.152 # 修改成自己的机器的ip
http:
  port: 80
#https:
#  port: 443
#  certificate: /your/certificate/path
#  private_key: /your/private/key/path
harbor_admin_password: Harbor12345 # admin密码
database:
  password: root123
  max_idle_conns: 100
  max_open_conns: 900
data_volume: /opt/harbor/data # 持久化数据目录
trivy:
  ignore_unfixed: false
  skip_update: false
  insecure: false
jobservice:
  max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor
_version: 2.3.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - trivy

2.5、安装并启动Harbor

$ ./install.sh

安装完成后查看下正在运行的docker容器:

$ docker ps

img

2.6、访问harbor WEB界面

http://192.168.182.152/
账号/密码:admin/Harbor12345

img

img

三、Harbor的使用(上传下载镜像)

3.1、登录harbor

$ docker login 192.168.182.152

登录失败,拒绝访问

img

【报错原因】Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是我们这里使用HTTP。

【报错解决】
在Docker配置文件/etc/docker/daemon.json中加入如下配置 :

"insecure-registries":["192.168.182.152"]

img

然后重新启动Docker:

$ systemctl restart docker
# 重启一下容器服务
$ docker-compose restart

再次登录

$ docker login 192.168.182.152
# 账号/密码:admin/Harbor12345

img

3.2、创建项目,这里创建一个test项目用于测试用。
img

如果不创建项目,则会报错‘unauthorized: project test not found: project test not found’

img

3.3、给构建好的镜像打标签并上传到harbor

# 打标签,这里的test就是上面创建的项目
$ docker tag busybox:latest 192.168.182.152/test/busybox:v1
# 推送到远程仓库
$ docker push 192.168.182.152/test/busybox:v1

img
img

3.4、下载镜像

$ docker image ls
$ docker rmi 192.168.182.152/test/busybox:v1
$ docker image ls
# 拉取镜像
$ docker pull 192.168.182.152/test/busybox:v1

img

四、Harbor启停

# 进到harbor安装目录
$ cd /opt/harbor/harbor
# 查看状态
$ docker-compose ps
# 停止
$ docker-compose stop
$ docker-compose ps
# 启动
$ docker-compose start
$ docker-compose ps
# 重启
$ docker-compose restart
$ docker-compose ps
bash
# 进到harbor安装目录
$ cd /opt/harbor/harbor
# 查看状态
$ docker-compose ps
# 停止
$ docker-compose stop
$ docker-compose ps
# 启动
$ docker-compose start
$ docker-compose ps
# 重启
$ docker-compose restart
$ docker-compose ps

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

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

相关文章

String是如何保证不变的?反射为什么可以改变String的值?

String是如何保证不变的?反射为什么可以改变String的值? 1. String字符串的源码分析 String 字符串到底能不能改变已经是老生常谈的问题了,但是在面试环节中,依然能够难住不少人。 下面我们根据 JDK1.8 版本下的String源码进行…

微信Hook逆向-获取登录二维码

文章目录前言一、打开Pc微信,切换到二维码界面二、解析当前二维码内容三、利用Cheat Enginer软件扫描二维码解析文本四、寻找静态偏移五.代码获取二维码网址前言 微信二维码可以Hook获取,也可以通过找到静态偏移的方式读取 提示:以下是本篇文章正文内容…

力扣(LeetCode)240. 搜索二维矩阵 II(C++)

题目描述 枚举 枚举整个矩阵&#xff0c;找到等于 target 的元素&#xff0c;则 return true &#xff0c;否则 return false。 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int n matrix.size(), m matrix[0]…

DataWhale 大数据处理技术组队学习task2

三、Hadoop分布式文件系统 1. 产生背景 数据量越来越大&#xff0c;一台独立的计算机已经无法存储所有的数据---->将大规模的数据存储到成百上千的计算机中------为了解决数据管理以及维护极其繁琐与低效------>分布式文件系统 分布式文件系统是管理网络中跨多台计算机…

基于SSM框架的狼途汽车门店管理系统的设计与实现

基于SSM框架的狼途汽车门店管理系统的设计与实现 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、…

AutoCAD学习之基本操作学习笔记

AutoCAD学习 基本操作&#xff08;23.2.15~23.2.17&#xff09; CtrlN 新建一个CAD文档F7 删除格栅F3 对象捕捉&#xff08;很重要啊&#xff0c;如果一直开着&#xff0c;操作起来很费劲。&#xff09;&#xff0c;需要关掉&#xff0c;注意使用snipaste&#xff0c;会不停地…

QT 文件监视系统QFileSystemWatcher监视目录的改变directoryChanged和监视文件的改变fileChanged

QT 文件监视系统QFileSystemWatcher监视目录的改变相关操作说明mainwindow.hmainwindow.cpp调试结果相关操作说明 添加头文件 Header: #include qmake: QT core bool QFileSystemWatcher::addPath(const QString &path)如果路径存在&#xff0c;则会向文件系统监视器添…

Prometheus Docker安装及监控自身

前提环境&#xff1a; Docker环境 涉及参考文档&#xff1a; 安装Prometheus开始 Prometheusnode_exporter Agent组件 一、部署Prometheus 1、启动容器将文件拷贝出来 docker run -d prom/prometheus2、容器将文件拷贝出来 docker cp 容器ID:/usr/share/prometheus/conso…

深度学习笔记:误差反向传播(1)

1 计算图 计算图使用图&#xff08;由节点和边构成的图&#xff09;来表达算式。 如图&#xff0c;我们用节点代表运算符号&#xff0c;用边代表传入的参数&#xff0c;即可算出购买苹果和橘子的总价格。 2 计算图的局部计算 局部计算意味着每个节点只处理和其相关的运算&…

网页设计html期末大作业

网页设计html期末大作业网页设计期末大作业-自制网站大一期末作业&#xff0c;外卖网站设计网页设计期末大作业-精美商城-首页框架网页设计期末大作业-自制网站 有导航栏&#xff0c;轮播图&#xff0c;按钮均可点进去&#xff0c;如下图所示 点我下载资源》》》》 大一期末…

linux ubuntu查日志信息以及错误排查

目录 一、linux的日志文件 1、常用日志文件 2、其他日志文件 二、历史日志的查看 1、查看Logrotate的配置信息 2、查看日志配置 一、linux的日志文件 Linux系统中最有趣的(可能也是最重要的)目录之一是/var/log。根据文件系统层次结构标准&#xff0c;在系统中运行的大多数…

java面试题-泛型异常反射

泛型1.什么是泛型&#xff1f;Java是一种强类型语言&#xff0c;数据类型在编译时必须确定。如果我们想要在代码中使用不同类型的数据&#xff0c;那么就需要为每种类型分别写出相应的代码。这样会导致代码冗长、重复&#xff0c;也不便于维护。为了解决这个问题&#xff0c;Ja…

嵌入式Linux入门级板卡的神经网络框架ncnn移植与测试-米尔i.MX6UL开发板

本篇测评由电子发烧友的优秀测评者“ALSET”提供。 米尔 MYD-Y6ULX-V2 开发板&#xff0c;基于 NXP i.MX6UL/i.MX6UL L处理器&#xff0c;该开发板被米尔称之为经典王牌产品。本次测试目标是在此开发板上进行神经网络框架ncnn的移植与测试开发&#xff0c;测试ncnn在此开发板上…

高可用的“异地多活”架构设计

前言 后台服务可以划分为两类&#xff0c;有状态和无状态。高可用对于无状态的应用来说是比较简单的&#xff0c;无状态的应用&#xff0c;只需要通过 F5 或者任何代理的方式就可以很好的解决。后文描述的主要是针对有状态的服务进行分析。 服务端进行状态维护主要是通过磁盘…

Orin 安装CUDA CUDNN TensorRT Opencv和输入法的环境配置

有两种方法可以安装CUDA环境 第一种方法-用命令按照 在刷机完成的Orin&#xff0c;执行如下命令&#xff1a; sudo apt update sudo apt upgrade sudo apt install nvidia-jetpack -y注释–如果在执行第三行命令&#xff0c;报错的话&#xff0c;先查看nvidia-l4t-apt-so…

初识K8s

概览 k8s 概念和架构从零搭建K8s 集群k8s 核心概念搭建集群监控平台搭建高可用k8s集群集群环境 实际部署项目 k8s 概念和架构 1、K8S概述和特性 概述&#xff1a; k8s是谷歌在2014年开源的容器化集群管理系统使用k8s进行容器化应用部署使用k8s利于应用扩展k8s目标实施让部…

AcWing3416.时间显示——学习笔记

目录 题目 代码 AC结果 思路 关键步骤 题目 3416. 时间显示 - AcWing题库https://www.acwing.com/problem/content/description/3419/ 代码 import java.util.Scanner;public class Main {public static void main(String[] args){Scanner input new Scanner(System.in…

Rust学习入门--【15】Rust 所有权

系列文章目录 Rust 语言是一种高效、可靠的通用高级语言&#xff0c;效率可以媲美 C / C 。本系列文件记录博主自学Rust的过程。欢迎大家一同学习。 Rust学习入门–【1】引言 Rust学习入门–【2】Rust 开发环境配置 Rust学习入门–【3】Cargo介绍 Rust学习入门–【4】Rust 输…

Maven的安装和配置

Maven的安装 1.1Maven是什么&#xff1f; 是阿帕奇的&#xff0c;就是代替原先手动导入jar包的方式 1.官方介绍 视频&#xff1a;百度百科-验证Maven是一款服务于Java平台的自动化构建工具。Maven 作为 Java 项目管理工具&#xff0c;它不仅可以用作包管理&#xff0c;还有许多…

DIDL4_前向传播与反向传播(模型参数的更新)

前向传播与反向传播前向传播与反向传播的作用前向传播及公式前向传播范例反向传播及公式反向传播范例小结前向传播计算图前向传播与反向传播的作用 在训练神经网络时&#xff0c;前向传播和反向传播相互依赖。 对于前向传播&#xff0c;我们沿着依赖的方向遍历计算图并计算其路…