Linux学习25-harbor私有仓库部署

harbor 企业级私有仓库

简介

Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能

安装harbor

删除之前部署的registry,不然会冲突

bash 复制代码
[root@server1 ~]# docker rm -f registry

部署证书

bash 复制代码
[root@server1 ~ ]# mkdir /data
[root@server1 ~ ]# cp -r certs /data
bash 复制代码
[root@server1 ~]# tar zxf harbor-offline-installer-v2.14.0.tgz
[root@server1 ~]# cd harbor/
[root@server1 harbor]# cp harbor.yml.tmpl harbor.yml
[root@server1 harbor]# vim harbor.yml
hostname: reg.westos.org

http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 80

https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /data/certs/westos.org.crt
  private_key: /data/certs/westos.org.key

...
harbor_admin_password: westos

部署harbor

bash 复制代码
[root@server1 harbor]# ./install.sh  --with-trivy


备注:

prepare 脚本是 Harbor 部署的 "预处理器",通过解析配置、生成运行时文件、验证环境依赖,将用户的抽象配置转化为可直接启动的容器编排规则,是连接配置与实际运行的关键步骤。

使用场景

prepare 脚本通常在以下阶段执行:

  • 首次部署 Harbor 前,执行 ./prepare 生成初始配置
  • 修改 harbor.yml 后,需重新执行 ./prepare 使配置生效(会更新 docker-compose.yml 及相关文件)
  • 升级 Harbor 版本时,用于适配新配置并生成兼容的启动文件

查看镜像

查看启动的容器

浏览器访问,会提示不安全,继续前往

用户名admin,密码westos

成功进入

harbor使用

登录仓库


给镜像打标签

root@server1 \~# docker tag busybox:latest reg.westos.org/library/busybox:latest

root@server1 \~# docker tag nginx:latest reg.westos.org/library/nginx:latest

上传镜像

root@server1 \~# docker push reg.westos.org/library/nginx:latest

root@server1 \~# docker push reg.westos.org/library/busybox:latest


配置默认仓库

root@server2 \~# vim /etc/docker/daemon.json

{

"registry-mirrors": "https://reg.westos.org"

}

root@server2 \~# systemctl restart docker

library项目中的镜像下载时可以直接写镜像名称

root@server2 \~# docker pull nginx

公共仓库支持匿名拉取


创建私有仓库

新建用户

授权维护私有仓库

私有仓库上传下载都需要认证,并且还要指定仓库域名

root@server1 \~# docker tag ubuntu:latest reg.westos.org/westos/ubuntu:latest

root@server1 \~# docker push reg.westos.org/westos/ubuntu:latest

root@server2 \~# docker login reg.westos.org

Username: wxh

Password: ***

root@server2 \~# docker pull reg.westos.org/westos/ubuntu

Harbor复制同步

在大规模集群环境下,如果所有 Docker 主机都从一个镜像仓库中拉取镜像,那么此镜像仓库很可能会成为镜像分发的瓶颈,影响镜像分发的速度。可以通过搭建多个镜像仓库并配合使用远程复制功能,解决这一问题

如下图所示,图中的镜像仓库分为两级:主仓库和子仓库。在主仓库和子仓库之间配置了远程复制策略。当一个应用镜像被推送到主仓库后,根据所配置的复制策略,镜像可以立即被分发到其他子镜像仓库。集群中的Docker 主机就可以就近在其中任意一个子仓库中拉取所需的镜像,减轻主仓库的压力

push 推送模式

在第二台虚拟机docker2上也部署harbor,将配置文件中的hostname更换为slave.westos.org,

解析中在docker2后加上slave.westos.org

也需要生成认证

最后在浏览器访问

回到201进行新建仓库

将主仓库作为推送端,目标设置为slave仓库,取消验证远程证书

成功创建


创建复制推送规则,复制策略支持推送和拉取两种方式。推送是指将当前 Harbor实例的Artifact(制品)复制到远程 Artifact 仓库服务下;拉取是指将其他Artifact 仓库服务中的Artifact 复制到当前 Harbor 实例中

Harbor针对 Artifact的不同属性支持 4 种过滤器,分别是名称过滤器、Tag 过滤器、标签过滤器、资源过滤器

这里我们选择远程推送所有项目下的所有镜像到 Docker Compose部署的 Harbor 中。触发模式为事件驱动,一旦有镜像推送到 Harbor中,就会立即推送到远程仓库中

手动尝试复制

成功


上传镜像测试触发复制

成功触发复制

点击id可以查看详情

在slave端可以看到复制过来的镜像

相关推荐
差不多的周周12 小时前
《骨架上下文:基于零镜头骨架的动作识别的骨架侧上下文提示学习》论文核心部分详解
学习
YoungStudyAI13 小时前
QA的下一个自动化阶段,可能不是再写更多脚本,而是设计测试Agent
运维·自动化
Century_Dragon14 小时前
从挂图到VR:汽修专业的一堂新能源原理课可以怎么上~
学习
分布式存储与RustFS14 小时前
纠删码到底吃掉了多少容量:EC:4、EC:8 的利用率与容错怎么算
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
遇见小修修14 小时前
3步解决打印机0x00000709报错 ,广州深圳程序员可自行排查
运维·打印机·维修·打印机报错·打印机运维·打印机故障自查
知识分享小能手14 小时前
C++ 学习教程,从入门到精通,C++对象和类 — 详细知识点总结(10)
开发语言·c++·学习
顺顺 尼14 小时前
linux 进程信号(上)
linux·c++·算法
niuTaylor15 小时前
飞腾 FT-2000/4 Ubuntu 内存卡 / NVMe SSD 系统制作完整指南
linux·服务器·人工智能·驱动开发·单片机
New农民工15 小时前
倒立摆训练秘籍:理解训练参数
学习
L@ncor15 小时前
第五章 基于低代码平台的智能体搭建 · 学习笔记(Coze / Dify / FastGPT / n8n)
笔记·学习·低代码·agent·prompt工程