个人技术分享

Harbor 是一个开源的企业级容器镜像仓库,由 VMware 开发,专为存储和分发 Docker 容器镜像而设计。Harbor 提供了丰富的功能,包括角色访问控制、镜像复制、审计日志、图形化界面等,非常适合在企业环境中使用。

Harbor 的主要功能

  1. 角色访问控制:细粒度的用户和权限管理,确保只有授权用户可以访问和操作镜像。
  2. 镜像复制:支持将镜像复制到其他 Harbor 实例或远程注册中心,实现多数据中心部署。
  3. 审计日志:记录所有操作日志,便于审计和追踪。
  4. 漏洞扫描:集成了 Clair 漏洞扫描工具,能够自动扫描镜像中的安全漏洞。
  5. 图形化界面:提供友好的 Web UI,方便管理和查看镜像。
  6. LDAP/AD 集成:支持与企业内部的 LDAP 或 Active Directory 集成,简化用户管理。
  7. 镜像签名:支持 Docker Content Trust (DCT),确保镜像来源可信。
  8. 高可用性:支持高可用部署,确保服务的稳定性和可靠性。

部署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平台上查看上传效果;

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