基于RHEL9.4部署Harbor私有化registry注册中心

Harbor 是一个开源的容器镜像仓库,它提供了企业级的特性,例如用户管理、镜像复制、Vulnerability scanning(漏洞扫描)、内容签名等。Harbor 可以帮助你存储、分发和保护 Docker 镜像。

Harbor 的主要功能

  1. 角色管理:通过细粒度的角色管理,可以控制用户对项目和镜像的访问权限。
  2. 镜像复制:支持在多个 Harbor 实例之间复制镜像,方便分布式部署和灾备。
  3. 漏洞扫描:集成了 Clair 和 Trivy,可以扫描镜像中的已知漏洞,确保镜像的安全性。
  4. 内容签名:使用 Notary 对镜像进行内容签名,确保镜像的完整性和来源可靠性。
  5. 多租户支持:通过项目的概念,支持多租户隔离。
  6. 图形化界面:提供一个友好的 Web 界面,方便用户管理镜像和配置仓库。
  7. 身份认证:支持多种认证方式,包括本地用户、LDAP、OIDC 等。
  8. 日志审计:记录用户操作日志,方便审计和跟踪。

安装 Harbor

Harbor 可以通过多种方式安装,包括二进制安装和使用 Helm 在 Kubernetes 中安装。以下是使用 Docker Compose 安装 Harbor 的步骤:

1. 准备环境

确保已安装 Docker 和 Docker Compose。

2. 下载 Harbor 安装包

前往 Harbor releases 页面,下载最新的安装包,例如 harbor-offline-installer-v2.3.0.tgz

[root@localhost ~]# wget https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz 
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

解压安装包:

[root@localhost ~]# tar xzvf harbor-offline-installer-v2.10.3.tgz
[root@localhost ~]# cd harbor/
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

复制一份默认的配置文件:

[root@localhost harbor]# cp harbor.yml.tmpl harbor.yml
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

编辑 harbor.yml 文件,根据需要进行配置。主要配置项包括:

hostname:Harbor 访问地址
port:Harbor 服务端口
https 配置:可以启用 HTTPS
harbor_admin_password:Harbor 管理员密码

这里配置hostname,端口保持默认,注释https块的内容;

[root@localhost harbor]# vim harbor.yml 

运行以下命令开始安装:

[root@localhost harbor]#  ./install.sh 

 该脚本会启动所有需要的 Harbor 组件,包括 core、jobservice、registry、notary 等。

使用 Harbor
安装完成后,可以通过 Web 界面和 CLI 工具来管理 Harbor。

1. Web 界面
打开浏览器,访问配置中的 hostname 和端口,例如 http://<localhost>:<port>,使用配置的管理员账户登录。

harbor的默认登录名为admin,密码为Harbor12345

创建一个项目;

准备另外一台部署好docker环境的RHEL主机,首先在该主机上配置守护进程;

[root@localhost ~]# vim /etc/docker/daemon.json
"insecure-registries": ["192.168.72.154"]

这里的IP为Harbor对应的主机IP地址;

重启 Docker 服务;

[root@localhost ~]# systemctl daemon-reload 
[root@localhost ~]# systemctl restart docker.service 

登录 Harbor

在没有部署Harbor的主机上使用docker login登录Harbor;

[root@localhost ~]# docker login 192.168.72.154

在主机本地准备一个测试镜像,可以通过docker pull拉取一个镜像;

使用docker tag命令将该测试镜像重新打上标签;

[root@localhost ~]# docker tag nginx:latest 192.168.72.154/my_registry/nginx:20240708

 将标记的docker镜像推送到harhor;

[root@localhost ~]# docker push 192.168.72.154/my_registry/nginx:20240708

登录到Harbor平台,查看推送结果;

高级功能
1. 镜像复制
Harbor 支持将镜像从一个 Harbor 实例复制到另一个实例,这对于多数据中心部署非常有用。在 Web 界面上,可以配置复制规则,指定源和目标 Harbor 实例。

2. 漏洞扫描
在项目设置中,可以启用漏洞扫描。Harbor 会定期扫描镜像,并在发现漏洞时提供详细报告。

3. 用户和项目管理
Harbor 通过项目和角色管理用户权限。管理员可以创建项目,并为每个项目分配不同的用户角色(如项目管理员、开发者、访客)。

总结
Harbor 是一个功能强大的企业级容器镜像仓库,提供了丰富的特性来满足安全性、可管理性和可扩展性的需求。通过其直观的界面和强大的 CLI 支持,Harbor 极大地简化了容器镜像的管理和分发过程。

 

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 14:20:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 14:20:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 14:20:02       57 阅读
  4. Python语言-面向对象

    2024-07-13 14:20:02       68 阅读

热门阅读

  1. 京鸿鑫源元宇宙革新探索:开启未来零售新纪元

    2024-07-13 14:20:02       18 阅读
  2. 力扣1249.移除无效的括号

    2024-07-13 14:20:02       21 阅读
  3. 智能化监控与云原生趋势:运维团队的未来展望

    2024-07-13 14:20:02       23 阅读
  4. DevOps工具链整合:打造高效的自动化工作流

    2024-07-13 14:20:02       29 阅读
  5. qt 开发一个可以拖动的矩形

    2024-07-13 14:20:02       20 阅读
  6. springboot项目,指定某些接口不被拦截方法

    2024-07-13 14:20:02       15 阅读
  7. 无人机的工作原理

    2024-07-13 14:20:02       14 阅读