跳到主要内容

harbor搭建和基础使用

简介

信息

内容来自AI总结

Harbor 是一个开源的企业级镜像仓库,它为容器镜像和其他云原生制品提供存储、安全扫描和管理功能。

Harbor 最初由VMware 开源,现在是CNCF 托管项目,其主要目标是为企业提供一个安全、可信、高效的镜像管理平台。

以下是Harbor 的一些主要特点和功能:

  • 镜像存储和管理:

    Harbor 能够安全地存储Docker 镜像、Helm charts、CNAB 包等云原生制品,并提供方便的访问和管理接口。

  • 权限控制和访问管理:

    Harbor 支持基于角色的访问控制(RBAC),可以精细地管理用户对镜像仓库的访问权限,确保镜像的安全性。

  • 镜像复制和分发:

    Harbor 允许用户在不同的Harbor 实例之间复制镜像,方便多地部署和镜像分发。

  • 镜像扫描和安全策略:

    Harbor 集成了镜像扫描工具(如Clair 或Trivy),可以对镜像进行安全漏洞扫描,帮助用户发现和解决潜在的安全问题。

  • 用户认证和授权:

    Harbor 支持多种用户认证方式,如LDAP、OIDC 等,可以与企业的用户管理系统集成。

  • 丰富的UI 界面:

    Harbor 提供直观的Web UI 界面,方便用户管理和操作镜像仓库。

  • 多租户支持:

    Harbor 通过项目隔离,支持多租户环境,方便不同团队或组织独立管理各自的镜像仓库。

  • 日志审计:

    Harbor 提供详细的操作日志和审计功能,方便管理员追踪和审计用户操作。

  • Helm Chart 仓库支持:

    Harbor 支持Helm Chart 仓库,方便用户管理和分发Helm 包。

总而言之,Harbor 是一个功能强大、安全可靠的企业级镜像仓库,它为容器化应用提供了全面的镜像管理和分发解决方案

Docker搭建

前往 https://github.com/goharbor/harbor/releases/latest 下载最新版,记得选offline离线版的

wget https://github.com/goharbor/harbor/releases/download/v2.13.1/harbor-offline-installer-v2.13.1.tgz

image-20250718140734162

下载后解压

tar -zxvf harbor-offline-installer-v2.13.1.tgz

解压后修改配置文件:

cd harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml

harbor.yml 内容修改如下:

# 修改hostname的值,如果没有域名就使用本机IP地址
hostname: 172.20.1.2

# 配置启动端口号
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 9000

# 如果没有申请证书,需要隐藏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

#启动成功后,admin用户的登录密码
harbor_admin_password: Harbor12345!

database:
# 数据库密码
password: root123!

执行install.sh生成docker-compose文件,以及启动容器:

./install.sh 

至此访问 http://172.20.1.2:9000 即可正常访问。

image-20250718141707226

上传/下载镜像

创建好项目

image-20250718141846169

进入项目后,右边有比较详细的推送命令

image-20250718141927977

理论上按照推送即可,但一般情况下没配置域名,需要配置docker忽略安全风险,如下:

vim /etc/docker/daemon.json
{
"insecure-registries":["172.20.1.2:9000"]
}

此时即可使用docker登录harbor仓库,并按照命令推送/下载。

docker login 172.20.1.2:9000
docker tag rustdesk/rustdesk-server:latest 172.20.1.2:9000/scan/rustdesk-server:1.1
docker push 172.20.1.2:9000/scan/rustdesk-server:1.1
docker pull 172.20.1.2:9000/scan/rustdesk-server@sha256:3960fae20f3af2af671d6800fa6e8a52d70367879716c8b6e53f55044dc4d837

image-20250718142859819

image-20250718143133385

其他

如果需要使用纯命令行进行harbor操作,可参考官方提供的cli:https://github.com/goharbor/harbor-cli,如下命令列出 scan/rustdesk-server 的版本:

harbor artifact list scan/rustdesk-server