Untitled

予早 2025-08-31 14:59:18
Categories: Tags:

Proxy: 首先在docker容器中启动了一个Nginx服务,这里它反向代理了所有请求到Harbor的请求,然后根据请求地址将请求转发到Harbor的各个组件中。
Registry: 基于docker官方distribution项目构建的镜像存储管理服务,负责存储Docker镜像,因为Harbor是做了权限控制的,所以用户在每一次push/pull请求时,都需要携带有效的token信息进行验证。
Adminserver Harbor系统配置管理端,操作数据库中的配置表(properties)。
UI: 业务核心组件。提供了对外的用户界面以及对外的rest接口服务,能够扫描的镜像层包含的CVE被删除或者更新以及Registry镜像上传下载等操作,同时处理了对资源的权限控制。
Job services: 主要负责镜像复制工作的,他重点是和registry通信的,记录registry的操作job_log。
Log collector: Harbor中各个组件服务的日志收集。

https://github.com/goharbor/harbor/releases

Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。

Harbor 依赖于 Docker 和 Docker compose组件

tar -zxvf harbor-offline-installer-v2.8.2.tgz -C /usr/local/
cd /usr/local/harbor/
cp harbor.yml.tmp harbor.yml
vim harbor.yml
hostname: 192.168.10.107                 # 修改为本机IP

#https:                                 # 因为自己搭建未使用 https 所以注释
#  # https port for harbor, default is 443
#  port: 443
#  # The path of cert and key files for nginx
#  certificate: /your/certificate/path
#  private_key: /your/private/key/path
harbor_admin_password: Harbor12345      # admin 密码
./install.sh

...
[Step 5]: starting Harbor ...
[+] Running 10/10
 ✔ Network harbor_harbor        Created 0.1s 
 ✔ Container harbor-log         Started 0.3s 
 ✔ Container harbor-portal      Started 0.8s 
 ✔ Container registry           Started 0.6s 
 ✔ Container harbor-db          Started 1.0s 
 ✔ Container registryctl        Started 0.9s 
 ✔ Container redis              Started 1.1s 
 ✔ Container harbor-core        Started 1.3s 
 ✔ Container harbor-jobservice  Started 1.7s 
 ✔ Container nginx              Started 1.7s 
✔ ----Harbor has been installed and started successfully.----

访问

192.168.1.112:80

报错

Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-b649822bbcff -j RETURN: iptables: No chain/target/match by that name. (exit status 1))
方法
这是因为在启动docker的时候防火墙做了策略,如果容器在运行中,停止防火墙,在操作容器就会报这个错误,我们可以重启docker解决此问题

systemctl restart docker.service
然后
docker-compose up -d 

根据情况给予权限

管理员用户拥有创建仓库和删除镜像的权限

普通用户拥有上传镜像和拉取镜像权限 无法删除仓库和镜像

--with-clair参数是启用漏洞扫描功能