镜像仓库Harbor

Harbor是VMware开源的企业级Docker镜像仓库,提供基于角色的访问控制、LDAP集成、镜像复制等功能。本文介绍了Harbor的特性、高可用方案、组件、部署和管理,帮助用户在生产环境中更好地管理和分发Docker镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、Harbor特性介绍

二、Harbor高可用方案介绍

三、Harbor组件

四、Harbor部署

五、Harbor管理


在生产一线,往往需要把镜像发布到几十台、上百台节点,这时单台 Docker 主机上的镜像已无法满足,项目越来越多,都放到一台 Docker 主机上是不行的,我们需要一个像 Git 仓库一样的系统来管理镜像。我们这里部署的就是 Harbor 作为 registry。

Harbor是由 VMWare 公司开源的容器镜像仓库,事实上,Harbor 是在 Docker Registry 上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控制,AD/LDAP集成以及审计日志等,足以满足基本需求。

官网:https://vmware.github.io/

一、Harbor特性介绍

1. 基于角色访问控制

每个人角色不同,需求也不同,因此就需要访问权限控制,根据角色分配相应的权限。例如,开发人员需要对项目构建这就需要用到读写权限(push/pull),测试人员只需要读权限(pull),运维一般管理镜像仓库,具备权限分配能力,项目经历具有所有权限。

在 Harbor 中,有三种角色:

(1)Guest:对指定项目有只读权限。

(2)Developer:开发,读写项目的权限。

(3)Admin:管理者,所有权限。

Anonymous:当用户未登录时,该用户被设为匿名用户。匿名用户不能访问私有项目,只能访问公开项目。

2. 镜像复制

可以将仓库中的镜像同步到远程的 Harbor。

3. LDAP

Harbor 支持 LDAP 认证,可以很轻易接入已有的 LDAP。

4. 镜像删除和空间回收

Harbor 支持在 Web 删除镜像,回收无用的镜像,释放磁盘空间。

5. 图形页面管理

用户很方面搜索镜像及项目管理

6. 审计

对仓库的所有操作都有记录

7. RESET API

完整的API,方便与外部集成。

二、Harbor高可用方案介绍

1. 共享存储

多个实例共享数据,共享一个存储。任何一个实例持久化存储的镜像,其它实例都可以读取到,通过前置负载均衡分发请求。

2. 复制同步

利用其镜像复制功能,实现双向复制保持数据一致,通过前置负载均衡分发请求。

三、Harbor组件

### 设置和使用私有容器镜像仓库 Harbor #### 配置环境准备 为了成功安装和配置 Harbor,需先准备好运行环境。这通常意味着要有一个支持 DockerDocker Compose 的服务器环境[^4]。 #### 下载与部署 Harbor Harbor 可通过官方提供的脚本快速下载并启动。获取最新版本的 Harbor 后,在解压后的目录下会找到 `install.sh` 脚本来执行安装过程。在此之前,建议阅读所提供的说明文档来确认具体的前置条件以及网络端口需求。 #### 创建安全证书 对于生产环境中使用的 Harbor 实例来说,创建自定义 SSL/TLS 证书是非常重要的一步。可以利用 OpenSSL 来生成必要的密钥对: ```bash openssl genrsa -out harbormei.key 3072 ``` 这条命令将会生成一个名为 `harbormei.key` 的文件,它包含了用于 HTTPS 连接的安全通信所需的私钥[^3]。 接着还需要为该私钥匹配相应的公钥证书请求 (CSR),并通过 CA 签发正式的 X.509 数字证书以便后续绑定至 Harbor 上作为服务端验证材料之一。 #### 初始化管理员账户 初次访问新建立好的 Harbor Web UI 登录界面时,默认情况下可使用预设用户名 admin 加上初始密码 Harbor12345 完成首次登录操作。之后应立即更改此默认凭证以增强安全性。 #### 备份现有数据 当需要更新或迁移现有的 Harbor 版本前,务必做好完整的备份工作以防万一出现问题能够迅速恢复原状。具体做法如下所示: ```bash cd harbor_work_directory docker-compose down mv harbor harbor_backup_name ``` 上述指令序列将停止所有正在运行的服务实例并将整个项目文件夹重命名为带有 `_bak` 后缀的新名字存档起来[^2]。 #### 推送与拉取镜像 一旦完成了以上各阶段的工作,则可以通过标准的 Docker CLI 命令向已注册成功的 Harbor 库推送本地构建完成的应用程序映像;同样也可以从中检索所需资源供开发测试之用。 ```bash # Tagging an image to be pushed into the private registry docker tag source_image:tag your_harbor_host/library/source_image:tag # Pushing tagged images up to the repository server docker push your_harbor_host/library/source_image:tag # Pulling from a specific project within Harbor docker pull your_harbor_host/project_namespace/image_name:version_tag ``` 这些基本的操作涵盖了从零开始搭建直至日常维护管理过程中涉及到的主要方面。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值