安装 Harbor(制品仓库)
本指南介绍如何在 Ubuntu 24.04 LTS 服务器上安装和配置 Harbor。Harbor 是主流的 云原生制品仓库(CNCF graduated 项目):支持以 OCI(Open Container Initiative)格式存储制品。您可以在其中托管 Docker 构建(容器镜像)、用于 Kubernetes 的 Helm 图表,以及 SBOM(Software Bill of Materials),在较新版本中还支持 AI/ML 制品。Harbor 集成 Trivy 进行漏洞扫描,支持 RBAC、OIDC/LDAP 以及仓库间 复制。
本文描述的部署使用 官方安装程序(Docker Compose)在 VM 或专用服务器上运行,配合 HTTPS 和 Let's Encrypt 证书。
订购服务器
要托管 Harbor 实例,HostMyServers 提供多种方案:
- Performance VPS - 适合测试仓库或小规模使用
- NVMe VPS - 性价比高
- 经济型专用服务器 - 适合多项目或多镜像
- 性能专用服务器 - 最佳性能
前提条件
- 以 root 或具有 sudo 权限的用户进行 SSH 访问
- Ubuntu 24.04 LTS 64 位系统
- Docker(引擎 20.10.10+)和 Docker Compose(v2 或 v1.18+)
- 一个 域名(例如
harbor.您的域名.com),并有一条指向服务器 IP 的 A 记录 - 端口 80(HTTP,用于 Certbot 或重定向)和 443(HTTPS)可访问
配置要求
| 组件 | 最低 | 推荐 |
|---|---|---|
| 内存 | 4 GB | 8 GB |
| CPU | 2 核 | 4 核 |
| 存储 | 40 GB | 160 GB |
| 网络 | 100 Mbps | 1 Gbps |
在生产环境中,务必使用有效证书(Let's Encrypt 或企业 PKI)配置 HTTPS。Harbor 正在逐步弃用 HTTP。
连接服务器
通过 SSH 连接到服务器:
ssh 用户@服务器IP地址
系统更新
开始前更新软件包:
sudo apt update
sudo apt upgrade -y
安装 Docker 与 Docker Compose
Harbor 依赖 Docker 和 Docker Compose。若尚未安装:
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${VERSION_CODENAME:-$VERSION}") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
验证:
docker --version
docker compose version
获取 TLS 证书(Let's Encrypt)
Harbor 必须配置证书和私钥。请在安装 Harbor 之前使用 Certbot 获取(端口 80 需空闲):
sudo apt install -y certbot
sudo certbot certonly --standalone -d harbor.您的域名.com -m 您的邮箱@示例.com --agree-tos --non-interactive
证书文件位于 /etc/letsencrypt/live/harbor.您的域名.com/:fullchain.pem(证书)和 privkey.pem(私钥)。请记下这些路径供下一步使用。
Certbot 会自动续期证书。续期后请重启 Harbor 容器以重新加载证书:cd /opt/harbor && sudo docker compose down && sudo docker compose up -d。