在 CentOS 7 上高效部署 Harbor 镜像仓库全指南

一、引言:Harbor 镜像仓库的重要性

在容器化技术日益普及的今天,镜像仓库作为容器镜像的存储和管理中心,扮演着至关重要的角色。Harbor 是一个由 VMware 开源的企业级私有镜像仓库解决方案,它提供了基于角色的访问控制、镜像复制、漏洞扫描、审计日志等高级功能,非常适合企业级应用场景。本文将详细介绍如何在 CentOS 7 系统上安装部署 Harbor 镜像仓库,帮助开发者及企业用户快速构建安全、高效的私有镜像仓库。

二、环境准备

1. 系统要求

  • 操作系统:CentOS 7(64位)
  • 内存:至少 4GB(推荐 8GB 或以上)
  • 磁盘空间:根据镜像存储需求而定,建议至少 100GB
  • CPU:双核或以上

2. 网络配置

确保服务器能够访问互联网,以便下载 Harbor 安装包及其依赖。同时,根据实际需求配置防火墙规则,允许必要的端口通信(如 80、443、22 等)。

3. 依赖安装

在安装 Harbor 之前,需要确保系统已安装以下依赖:

  • Docker:Harbor 运行在 Docker 容器中,因此需要先安装 Docker。
  • Docker Compose:Harbor 使用 Docker Compose 进行编排和管理。
  • Git(可选):用于克隆 Harbor 的安装脚本或配置文件。

安装 Docker

  1. # 添加 Docker 官方 GPG 密钥
  2. sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  3. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  4. # 安装 Docker CE
  5. sudo yum install -y docker-ce docker-ce-cli containerd.io
  6. # 启动 Docker 服务
  7. sudo systemctl start docker
  8. sudo systemctl enable docker

安装 Docker Compose

  1. # 下载 Docker Compose 二进制文件
  2. sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  3. # 添加执行权限
  4. sudo chmod +x /usr/local/bin/docker-compose
  5. # 验证安装
  6. docker-compose --version

三、Harbor 安装与配置

1. 下载 Harbor 安装包

访问 Harbor 官方 GitHub 仓库(https://github.com/goharbor/harbor/releases),下载最新版本的 Harbor 安装包(通常为 .tar.gz 格式)。

  1. # 示例:下载 Harbor 2.3.3 版本
  2. wget https://github.com/goharbor/harbor/releases/download/v2.3.3/harbor-offline-installer-v2.3.3.tgz
  3. # 解压安装包
  4. tar -zxvf harbor-offline-installer-v2.3.3.tgz
  5. cd harbor

2. 配置 Harbor

编辑 harbor.yml(或 harbor.cfg,取决于版本)配置文件,根据实际需求修改以下关键配置:

  • hostname:Harbor 服务器的域名或 IP 地址。
  • ui_url_protocol:访问协议(http 或 https)。
  • db_password:数据库密码(用于内部数据库)。
  • harbor_admin_password:Harbor 管理员密码。
  • data_volume:镜像存储路径。
  • certificateprivate_key(如果使用 https):SSL 证书和私钥路径。

示例配置片段:

  1. hostname: 192.168.1.100 # 替换为实际 IP 或域名
  2. ui_url_protocol: http
  3. db_password: root123
  4. harbor_admin_password: Harbor12345
  5. data_volume: /data/harbor
  6. # 如果使用 https,取消以下注释并配置证书和私钥
  7. # https:
  8. # certificate: /path/to/certificate.pem
  9. # private_key: /path/to/private_key.pem

3. 运行安装脚本

执行 install.sh 脚本启动安装过程:

  1. sudo ./install.sh

安装过程中,脚本会自动下载所需的 Docker 镜像,并启动 Harbor 服务。安装完成后,会显示类似以下的成功信息:

  1. ----Harbor has been installed and started successfully.----

四、Harbor 使用与验证

1. 访问 Harbor Web 界面

打开浏览器,输入 http://<hostname>(或 https://<hostname> 如果配置了 https),使用默认管理员账号 admin 和配置文件中设置的密码登录。

2. 创建项目

在 Web 界面中,点击“新建项目”,输入项目名称(如 myproject),设置访问级别(公开或私有),点击“确定”创建项目。

3. 推送镜像到 Harbor

标记镜像

  1. # 示例:标记一个本地镜像为 Harbor 仓库中的镜像
  2. docker tag nginx:latest 192.168.1.100/myproject/nginx:latest

登录 Harbor 仓库

  1. docker login 192.168.1.100
  2. # 输入用户名(admin)和密码

推送镜像

  1. docker push 192.168.1.100/myproject/nginx:latest

4. 验证镜像推送

在 Harbor Web 界面中,导航到“项目”->“myproject”->“仓库”,查看已推送的镜像。

五、高级配置与管理

1. 配置 HTTPS

为了确保数据传输安全,建议配置 HTTPS。生成 SSL 证书和私钥,修改 harbor.yml 配置文件,重新运行 install.sh 脚本。

2. 配置镜像复制

Harbor 支持镜像复制功能,可以在不同 Harbor 实例或其它镜像仓库(如 Docker Hub)之间同步镜像。在 Web 界面中,导航到“系统管理”->“复制管理”,添加复制规则。

3. 配置漏洞扫描

Harbor 集成了 Clair 漏洞扫描工具,可以自动扫描镜像中的安全漏洞。确保在 harbor.yml 中启用了漏洞扫描功能,并配置了 Clair 的相关参数。

4. 备份与恢复

定期备份 Harbor 的数据库和配置文件,以防数据丢失。可以使用 pg_dump 工具备份 PostgreSQL 数据库,备份配置文件至安全位置。

六、总结与展望

通过本文的详细介绍,我们成功在 CentOS 7 系统上安装部署了 Harbor 镜像仓库,并完成了基本的配置和使用。Harbor 作为企业级私有镜像仓库解决方案,提供了丰富的功能和强大的扩展性,能够满足各种复杂的容器化应用场景。未来,随着容器技术的不断发展,Harbor 也将持续迭代升级,为用户提供更加安全、高效的镜像管理服务。