Harbor 是一个开源的企业级容器镜像仓库,由 VMware 开发,专为存储和分发 Docker 容器镜像而设计。Harbor 提供了丰富的功能,包括角色访问控制、镜像复制、审计日志、图形化界面等,非常适合在企业环境中使用。
Harbor 的主要功能
- 角色访问控制:细粒度的用户和权限管理,确保只有授权用户可以访问和操作镜像。
- 镜像复制:支持将镜像复制到其他 Harbor 实例或远程注册中心,实现多数据中心部署。
- 审计日志:记录所有操作日志,便于审计和追踪。
- 漏洞扫描:集成了 Clair 漏洞扫描工具,能够自动扫描镜像中的安全漏洞。
- 图形化界面:提供友好的 Web UI,方便管理和查看镜像。
- LDAP/AD 集成:支持与企业内部的 LDAP 或 Active Directory 集成,简化用户管理。
- 镜像签名:支持 Docker Content Trust (DCT),确保镜像来源可信。
- 高可用性:支持高可用部署,确保服务的稳定性和可靠性。
部署Harbor
前提条件:
1.安装docker环境;
2.安装docker-compose环境。
资源路径:Harbor · GitHub

使用wget从 https://github.com/goharbor/harbor/releases/download/v2.11.0/harbor-offline-installer-v2.11.0.tgz
下载Harbor V2.11.0的资源包;
[root@localhost ~]# wget https://github.com/goharbor/harbor/releases/download/v2.11.0/harbor-offline-installer-v2.11.0.tgz

将本地的Harbor资源包解压到指定目录下;
[root@localhost ~]# tar xf harbor-offline-installer-v2.11.0.tgz -C /usr/local/
进入Harbor主目录,拷贝可执行文件harbor.yml,并进行如下修改:
[root@localhost ~]# cd /usr/local/harbor/

[root@localhost harbor]# cp harbor.yml.tmpl harbor.yml
使用ip addr命令查看本地主机的IP地址,这对于修改harbor.yml中的Hostname字段有帮助。

使用vim编辑器编辑harbor.yml文件;
[root@localhost harbor]# vim harbor.yml
修改hostname字段为本地主机的IP地址;端口可以默认80,也可以自定义端口号,取值范围0~65535。

注释HTTPS模块的所有内容;

执行以上操作后,:wq!保存退出。
执行 ./install.sh或者 sh install.sh 安装Harbor;
[root@localhost harbor]# ./install.sh


使用浏览器登录Harbor进行基本的配置;(默认登录名为admin,密码为Harbor12345,可以在harbor.yml中进行修改)

点击“新建项目”创建一个项目,如图所示。

准备另外一台RHEL9状态的主机,确保已经安装好了docker。
从docker hub拉取一个用于测试的镜像。
[root@localhost ~]# docker pull nginx:latest
在测试机上配置Docker 守护进程的配置文件;
[root@localhost ~]# vim /etc/docker/daemon.json
添加以下内容;
{
"insecure-registries":["192.168.72.131"]
}
重载服务;
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker.service
登录Harbor:
[root@localhost ~]# docker login 192.168.72.131

使用docker tag命令将该镜像重新打上标签;
[root@localhost ~]# docker tag nginx:latest 192.168.72.131/my_test_project/nginx:2024
使用docker push命令将该镜像推送到Harbor平台上。
[root@localhost ~]# docker push 192.168.72.131/my_test_project/nginx:2024

在Harbor平台上查看上传效果;

将本地的镜像删除,验证拉取效果。