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端可以看到复制过来的镜像

相关推荐
刃神太酷啦1 小时前
Redis 进阶核心:持久化 (RDB/AOF)、事务与主从复制全解析----《Hello Redis!》(5)
linux·c语言·数据库·c++·redis·缓存·bootstrap
留白_1 小时前
【tableau入门学习】5、筛选器、参考线和集
学习·tableau
编程的一拳超人1 小时前
DeepSeek Harness Linux/macOS/Windows 本地下载、启动与模型配置指南
linux·windows·macos·deepseek
youm20031 小时前
认识Redis
redis·笔记·学习
醉颜凉2 小时前
网络安全必学:粘性MAC地址(Sticky MAC)原理与应用全解析
运维·服务器·网络·安全·web安全
时凌云.2 小时前
【2026最新】JDK 下载安装与环境配置全教程(Windows/Mac/Linux 三平台,零基础友好)
java·linux·macos
不懂的浪漫2 小时前
ToDesk 连接 Linux 后分辨率过低的解决方法
linux·运维·数据库
亮工硬件2 小时前
1-11 STM32内部FLASH(数据掉电保存)
笔记·stm32·单片机·嵌入式硬件·学习
传奇开心果编程2 小时前
【Rust入门知识点学与练】第17课:闭包 Closures
开发语言·学习·rust