Skip to content

Harbor 安装与配置 ​

作者: ryan 发布于: 2025/10/15 更新于: 2025/11/17 字数: 0 字 阅读: 0 分钟

Harbor 支持在线/离线安装,推荐使用 Docker Compose(开发/测试)或 Helm(生产/K8s)。

一、Harbor 安装先决条件 ​

资源需求 ​

以下是部署 Harbor 的最小和推荐资源需求

资源最小推荐
CPU2 CPU4 CPU
内存4 GB8 GB
磁盘40 GB160 GB

系统环境依赖需求 ​

软件版本描述
Docker EngineVersion > 20.10 版本 > 20.10Docker Engine 安装
Docker ComposeDocker compose > 2.3Docker Compose 是 Docker Engine 的一部分
OpenSSLLatest (optional) 最新版(可选)用于生成 Harbor 的证书和密钥

网络端口 ​

Port 端口Protocol 协议Description 描述
443HTTPSHarbor 门户和核心 API 在此端口上接受 HTTPS 请求。可以在配置文件中更改此端口。
80HTTPHarbor 门户和核心 API 在此端口上接受 HTTP 请求。

二、下载 Harbor 安装程序 ​

可以从官方发布页面下载 Harbor 安装程序。下载在线安装程序或离线安装程序。

  • 在线安装程序:在线安装程序从 Docker hub 下载 Harbor 镜像。因此,安装程序的大小非常小。
  • 离线安装程序:离线安装程序包含预构建的镜像,因此它比在线安装程序大。

在线和离线安装程序的安装过程几乎相同。

下载并解压安装程序 ​

Harbor 版本发布页面 : https://github.com/goharbor/harbor/releases

下载要安装版本的在线或离线安装程序。

image-20251029113214706

离线版本

bash
tar xzvf harbor-offline-installer-v2.14.0.tgz

三、配置 Harbor 基于 HTTPS 访问 ​

默认情况下,Harbor 不附带证书。但是也可以配置在不启用安全性的情况通过 HTTP 连接 Harbor。然而,只推荐在与外部互联网断开连接的测试或开发环境中,使用 HTTP 。在外部可访问环境中使用 HTTP 会使业务系统面临中间人攻击的风险。在生产环境中,请始终使用 HTTPS。

要配置 HTTPS,需要提前创建 SSL 证书。您可以使用由受信任的第三方 CA 签名的证书,或者您可以使用自签名证书。

自签发证书 ​

本节描述了如何使用 OpenSSL 创建 CA,以及如何使用您的 CA 来签发服务器证书和客户端证书。当然也可以使用其他 CA 提供商,例如 Let’s Encrypt。(推荐)

创建CA证书 ​

在生产环境中,您应从 CA 获取证书。在测试或开发环境中,您可以生成自己的 CA。要生成 CA 证书,请运行以下命令。

生成 CA 证书私钥

bash
openssl genrsa -out ca.key 4096

生成 CA 证书

将 -subj 选项中的值为您的组织信息。如果您使用 FQDN 连接 Harbor 主机,您必须将其指定为通用名称( CN )属性。

bash
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=MyPersonal Root CA" \
 -key ca.key \
 -out ca.crt

生成服务器证书 ​

证书通常包含一个 .crt 文件和一个 .key 文件,例如, yourdomain.com.crt 和 yourdomain.com.key 。

生成私钥

bash
openssl genrsa -out yourdomain.com.key 4096

生成证书签名请求(CSR)

将 -subj 选项中的值调整为反映您的组织。如果您使用完全限定域名(FQDN)连接到您的 Harbor 主机,您必须将其指定为常见名称( CN )属性,并在密钥和 CSR 文件名中使用它。

bash
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
    -key yourdomain.com.key \
    -out yourdomain.com.csr

生成一个 x509 v3 扩展文件

无论您是使用 FQDN 还是 IP 地址连接到您的 Harbor 主机,都必须创建此文件,以便您可以生成符合主题备用名称(SAN)和 x509 v3 扩展要求的证书。将 DNS 条目替换为您的域名。

bash
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=yourdomain.com
DNS.2=yourdomain
DNS.3=hostname
EOF

使用 v3.ext 文件为您的 Harbor 主机生成证书。

将 CSR 和 CRT 文件名中的 yourdomain.com 替换为 Harbor 主机名。

bash
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in yourdomain.com.csr \
    -out yourdomain.com.crt

申请使用CA机构证书 ​

在生成 ca.crt 、 yourdomain.com.crt 和 yourdomain.com.key 文件后,您必须将它们提供给 Harbor 和 Docker,并重新配置 Harbor 以使用它们。

将服务器证书和密钥复制到 Harbor 主机上的 certificates 文件夹中。

四、配置Harbor 和 Docker使用自签发证书 ​

将服务器证书和密钥复制到 Harbor 主机上的 certificates 文件夹中。

bash
cp yourdomain.com.crt /data/cert/
cp yourdomain.com.key /data/cert/

将 yourdomain.com.crt 转换为 yourdomain.com.cert ,供 Docker 使用。

Docker 守护进程将 .crt 文件解释为 CA 证书,将 .cert 文件解释为客户端证书。

bash
openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert

将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中。

bash
cp yourdomain.com.cert /etc/docker/certs.d/yourdomain.com/
cp yourdomain.com.key /etc/docker/certs.d/yourdomain.com/
cp ca.crt /etc/docker/certs.d/yourdomain.com/

如果您将默认的 nginx 端口 443 映射到了不同的端口,请创建 /etc/docker/certs.d/yourdomain.com:port 文件夹,或 /etc/docker/certs.d/harbor_IP:port 文件夹。

重启 Docker Engine

bash
systemctl restart docker

使用自定义证书的配置说明

bash
/etc/docker/certs.d/
    └── yourdomain.com:port
       ├── yourdomain.com.cert  <-- 由CA签发的服务端证书
       ├── yourdomain.com.key   <-- 由CA签发的服务端KEY
       └── ca.crt

五、部署Harbor ​

配置 Harbor YML 文件 ​

必需参数 ​

下表列出了部署 Harbor 时必须设置的参数。默认情况下,所有必需参数在 harbor.yml 文件中均已取消注释。可选参数以 # 注释。

注意:Harbor 不附带任何证书。在 1.9.x 版本及以下版本中,默认情况下 Harbor 使用 HTTP 来服务注册请求。

参数子参数描述和附加参数
hostnameNone指定部署 Harbor 的目标主机的 IP 地址或完全限定域名(FQDN)。这是您访问 Harbor 门户和注册表服务的地址。例如, 192.168.1.10 或 reg.yourdomain.com 。注册表服务必须对外部客户端可访问,因此不要将 localhost 、 127.0.0.1 或 0.0.0.0 作为主机名指定。
http在生产环境中不要使用 HTTP。只有在与外部互联网断开连接的隔离测试或开发环境中,使用 HTTP 才是可接受的。在非隔离环境中使用 HTTP 会使您面临中间人攻击的风险。
portHTTP 的端口号,用于 Harbor 门户和 Docker 命令。默认为 80。
https使用 HTTPS 访问 Harbor 门户和令牌/通知服务。在生产环境和非断网环境中始终使用 HTTPS。
portHTTPS 的端口号,适用于 Harbor 门户和 Docker 命令。默认为 443。
certificateSSL 证书的路径。
private_keySSL 密钥的路径。
internal_tls使用 HTTPS 在 Harbor 组件之间进行通信
enabled将此标志设置为 true 表示启用内部 TLS
dir包含内部证书和密钥的目录路径
harbor_admin_passwordNone为 Harbor 系统管理员设置初始密码。此密码仅在 Harbor 首次启动时使用。在随后的登录中,此设置将被忽略,管理员密码将在 Harbor 门户中设置。默认用户名和密码是 admin 和 Harbor12345 。
database使用本地 PostgreSQL 数据库。您可以选择配置外部数据库,在这种情况下,您可以禁用此选项。
password设置本地数据库的 root 密码。您必须更改此密码以进行生产部署。
max_idle_conns空闲连接池中的最大连接数。如果它 <=0,则不保留空闲连接。
max_open_conns数据库的最大打开连接数。如果它 <= 0,则对打开连接数没有限制。
conn_max_lifetime最大可重用连接的时间。如果它小于等于 0,则不会因为连接的年龄而关闭连接。
conn_max_idle_time连接可能空闲的最大时间。如果它小于等于 0,则不会因为连接的空闲时间而关闭连接。
data_volumeNone在目标主机上存储 Harbor 数据的存储位置。即使删除和/或重新创建 Harbor 的容器,这些数据也不会改变。您可以配置外部存储,在这种情况下,请禁用此选项并启用 storage_service 。默认为 /data 。
trivy配置 Trivy 扫描器。
ignore_unfixed将标志设置为 true 以仅显示已修复漏洞。默认值为 false
security_check以逗号分隔的列表,指定要检测的安全问题。可能的值是 vuln 、 config 和 secret 。默认值为 vuln 。
skip_update您可能希望在测试或 CI/CD 环境中启用此标志以避免 GitHub 速率限制问题。如果启用此标志,您必须手动下载 trivy-offline.tar.gz 存档,提取 trivy.db 和 metadata.json 文件,并将它们挂载到容器的 /home/scanner/.cache/trivy/db/trivy.db 路径。默认值为 false
insecure将标志设置为 true 以跳过验证注册证书。默认值为 false
github_token将 GitHub 访问令牌设置为下载 Trivy DB。Trivy 从 GitHub 发布页面下载 Trivy DB。GitHub 的匿名下载每小时受限于 60 次请求。通常这种速率限制对于生产操作已经足够。如果出于任何原因,这还不够,您可以通过指定 GitHub 访问令牌将速率限制增加到每小时 5000 次请求。有关 GitHub 速率限制的更多详细信息,请参阅 https://developer.github.com/v3/#rate-limiting。您可以通过遵循 https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line 中的说明来创建 GitHub 令牌。
jobservicemax_job_workers作业服务中最大复制工作进程数。对于每个镜像复制作业,一个工作进程将仓库的所有标签同步到远程目的地。增加此数值允许系统中有更多并发复制作业。然而,由于每个工作进程都会消耗一定量的网络/CPU/IO 资源,请根据主机的硬件资源设置此属性的值。默认值为 10。
notificationwebhook_job_max_retry设置 web 钩子作业的最大重试次数。默认值为 10。
log配置日志。Harbor 使用rsyslog收集每个容器的日志。
level设置日志级别为 debug 、 info 、 warning 、 error 或 fatal 。默认为 info 。
local设置日志保留参数: rotate_count : 在删除之前,日志文件会被轮转 rotate_count 次。如果计数为 0,则删除旧版本而不是轮转。默认值为 50。rotate_size : 只有当日志文件大小超过 rotate_size 字节时才会进行轮转。使用 k 表示千字节, M 表示兆字节, G 表示吉字节。 100 、 100k 、 100M 和 100G 都是有效值。默认值为 200M。location : 设置存储日志的目录。默认为 /var/log/harbor 。
external_endpoint启用此选项以将日志转发到 syslog 服务器。protocol : syslog 服务器的传输协议。默认为 TCP。host : syslog 服务器的 URL。port : syslog 服务器监听的端口。
proxy配置 trivy-adapter、复制作业服务和 Harbor 使用的代理。如果不需要代理,请留空。某些代理有白名单设置,如果启用了 Trivy,您需要将以下 URL 添加到代理服务器的白名单中: github.com , github-releases.githubusercontent.com 和 *.s3.amazonaws.com.
http_proxy配置一个 HTTP 代理,例如, http://my.proxy.com:3128 。
https_proxy配置一个 HTTPS 代理,例如, http://my.proxy.com:3128 。
no_proxy配置何时不使用代理,例如, 127.0.0.1,localhost,core,registry 。
cache配置 Harbor 实例的缓存层。启用后,Harbor 将使用 Redis 缓存一些 Harbor 资源(例如,工件、项目或项目元数据),以减少对同一 Harbor 资源的重复请求所需的时间和资源。强烈建议在高并发拉取请求频率的 Harbor 实例上启用此功能,以提高 Harbor 的整体性能。有关缓存层实现和性能改进的更多详细信息,请参阅缓存层 wiki 页面。
enabled默认为 false ,设置为 true 以启用 Harbor 的缓存层。
expire_hours配置缓存过期限制(以小时为单位)。默认为 24。

可选参数 ​

下表列出了您可以在配置 Harbor 部署时设置的附加可选参数,以超出最小必需设置。

要启用设置,您必须在 harbor.yml 中取消注释它,通过删除前面的 # 字符。

参数子参数描述和附加参数
external_urlNone启用此选项以使用外部代理。启用后,不再使用主机名。
storage_service默认情况下,Harbor 将镜像和图表存储在本地文件系统中。在生产环境中,您可能希望使用除本地文件系统之外的另一个存储后端。下文列出的参数是注册表的配置。有关如何配置不同后端的更多信息,请参阅下方的配置存储后端。
`ca_bundle自定义根 CA 证书的路径,该证书注入到注册表和图表存储库容器的信任存储中。如果内部存储使用自签名证书,通常需要此设置。
filesystem默认为 filesystem ,但您可以设置 azure 、 gcs 、 s3 、 swift 和 oss 。有关如何配置其他后端的信息,请参阅下文“配置存储后端”。将 maxthreads 设置为限制外部提供程序线程数。默认为 100。
redirect当您想禁用注册表重定向时,将 deactivate 设置为 true 。
external_database如果您禁用了本地数据库选项,请配置外部数据库设置。目前,Harbor 仅支持 PostgreSQL 数据库。您必须为 Harbor 核心创建数据库。当 Harbor 启动时,表会自动生成。
harbor配置 Harbor 数据的外部数据库。host : Harbor 数据库的主机名。 port : 数据库端口。db_name : 数据库名。username : 连接到 Harbor 核心数据库的用户名。password : 在 username 中设置的账户的密码。ssl_mode : 启用 SSL 模式。max_idle_conns : 空闲连接池中最大连接数。如果小于等于 0,则不保留空闲连接。默认值为 2。 max_open_conns : 数据库最大打开连接数。如果小于等于 0,则没有打开连接数的限制。默认值为 0。
external_redis配置外部 Redis 实例。
hostredis_host: 外部 Redis 实例的 redis_port。如果您使用的是 Sentinel 模式,这部分应该是 host_sentinel1:port_sentinel1,host_sentinel2:port_sentinel2
sentinel_master_set仅在启用 Sentinel 模式时设置此配置。
password连接到外部 Redis 实例的密码。
registry_db_index数据库索引用于 Harbor 注册表。
jobservice_db_index数据库索引用于 jobservice。
chartmuseum_db_index数据库索引用于 Chart 博物馆。
trivy_db_index数据库索引用于 Trivy 适配器。
metric配置将 Harbor 实例指标暴露到指定的端口和路径
enabled启用在您的 Harbor 实例上公开指标,通过将此设置为 true 。默认为 false
`port端口指标公开于。默认为 9090
path路径指标公开于。默认为 /metrics
trace配置公开分布式跟踪数据
enabled启用在您的 Harbor 实例上暴露跟踪功能,通过将此设置为 true 。默认为 false
`sample_rate设置跟踪的采样率。例如,如果您想采样 100%的跟踪数据,请将 sample_rate 设置为 1 ;如果您想采样 50%的跟踪数据,请设置为 0.5 ,依此类推
namespace用于区分不同 Harbor 服务的命名空间,将设置为具有键 service.namespace 的属性
attributesattributes 属性是一个键值字典,包含用于初始化跟踪提供者的用户定义的自定义属性,所有这些属性都将添加到跟踪数据中
`jaegerendpoint : 端点 URL(例如 http://127.0.0.1:14268/api/traces )。设置端点意味着通过 HTTP 导出到 Jaeger 收集器。username: : 连接端点时使用的用户名。如不需要,请留空。 password: : 连接端点时使用的密码。如不需要,请留空。agent_host : jaeger agent 的主机名。设置 agent_host 表示通过 UDP 将数据导出到 jaeger agent。agent_port: : jaeger agent 的端口号。
otelendpoint : 与 otel 兼容的后端的主机名和端口号(例如 127.0.0.1:4318 )。 url_path: : 端点的 URL 路径(例如 127.0.0.1:4318 ) compression: : 如果启用数据压缩 insecure : 忽略 otel 后端证书验证 timeout: : 数据传输的超时时间

默认情况下,Harbor 使用本地存储来存储仓库,但您可以选择配置 storage_service 设置,以便 Harbor 使用外部存储。有关如何为不同的存储提供商配置仓库的存储后端的信息,请参阅分发仓库(之前称为 Docker 仓库)文档中的分发配置参考。例如,如果您使用 Openstack Swift 作为存储后端,参数可能类似于以下内容:

yaml
storage_service:
  ca_bundle:
  swift:
    username: admin
    password: ADMIN_PASS
    authurl: http://keystone_addr:35357/v3/auth
    tenant: admin
    domain: default
    region: regionOne
    container: docker_images
  redirect:
    disabled: false

生产级示例配置 ​

harbor.yaml 此配置已达到生产级部署要求,重点关注项为证书管理、漏洞库更新机制及域名解析一致性。更多配置细节可参考 https://goharbor.io/docs。

yaml
# 全局核心配置
hostname: x.x.x.x               # Harbor 服务的访问域名或 IP,用于 UI 和镜像拉取地址
http:                           # HTTP 协议配置
  port: 11800                   # HTTP 监听端口 (通常用于非生产环境或前置代理)
https:                          # HTTPS 协议配置(推荐生产使用)
  port: 11443                   # HTTPS 监听端口
  certificate: /opt/fullchain.pem  # SSL 证书路径(包含完整链)
  private_key: /opt/privkey.pem    # 私钥路径
harbor_admin_password: xxxxxx   # Harbor 管理员初始密码(需强保密)

# 数据库连接池配置
database:
  password: xxxxxxxxx           # 数据库密码
  max_idle_conns: 50            # 最大空闲连接数(保持连接复用)
  max_open_conns: 300           # 最大活跃连接数(控制数据库并发负载)
  conn_max_lifetime: 1m         # 连接最大存活时间(超时自动重建)
  conn_max_idle_time: 0         # 连接最大空闲时间(0 = 永久复用)

# 存储配置
data_volume: /data              # Harbor 持久化数据存储根目录(镜像/数据库/日志等)

# 镜像仓库高级配置
registry:
  maxblob: 500000000            # 单层镜像最大尺寸(约 500MB)

# Trivy 漏洞扫描配置 
trivy:
  ignore_unfixed: false         # 是否忽略未修复的漏洞(false=报告所有)
  skip_update: true             # 是否跳过漏洞库更新(true=手动更新,需定期维护)
  skip_java_db_update: true      # 是否跳过 Java 漏洞库更新
  offline_scan: true            # 离线扫描模式(避免请求外部接口)
  security_check: critical,high # 扫描严重级别(critical 和 high 级别漏洞)
  insecure: false               # 是否允许扫描非安全 HTTPS 仓库
  timeout: 10m0s                # 单次扫描超时时间

# 作业服务配置(复制/清理等后台任务)
jobservice:
  max_job_workers: 20           # 最大并发任务数(并行执行能力)
  max_job_duration_hours: 12    # 单任务最长运行时间
  job_loggers:                  # 日志输出方式
    - STD_OUTPUT                 # 标准输出
    - FILE                       # 文件存储
  logger_sweeper_duration: 1     # 日志清理周期(单位:小时)

# 通知服务配置
notification:
  webhook_job_max_retry: 5      # Webhook 通知失败重试次数
  webhook_job_http_client_timeout: 10  # Webhook HTTP 超时时间(秒)

# 日志系统配置 [1]
log:
  level: warning                # 日志级别(warning > error > info > debug)
  local:
    rotate_count: 20            # 保留的日志文件数量(循环覆盖)
    rotate_size: 50M            # 单个日志文件最大尺寸(超过则分割)
    location: /var/log/harbor    # 日志存储路径 

# 版本标识(自动生成勿修改)
_version: 2.14.0                

# 高级网络配置 
external_url: https://harbor-197.ceamg.cn  # Harbor 对外的完整访问 URL(重要!用于外部代理/负载均衡场景)

# 代理设置(适用于需通过代理访问外网的环境)
proxy:
  http_proxy:                   # HTTP 代理地址(留空表示禁用)
  https_proxy:                  # HTTPS 代理地址
  no_proxy: localhost,127.0.0.1,core,jobservice,trivy,.svc.cluster.local  # 代理排除列表(内部服务)

# 上传缓存清理配置
upload_purging:
  enabled: true                 # 开启未完成上传的自动清理
  age: 72h                      # 清理超过 72 小时的上传任务
  interval: 24h                 # 清理任务执行间隔
  dryrun: false                 # 是否仅模拟(false=实际删除)

# 缓存服务配置(加速 API 响应)[1]
cache:
  enabled: true                 # 启用缓存(提升性能)
  expire_hours: 12              # 缓存失效时间(小时)

安装 Harbor ​

Harbor 安装目录中各核心文件作用详解 ​

以下为离线版harbor-offline-installer-v2.14.0.tgz 目录内容

bash
[root@openEuler2203-16 harbor]# ls -lh
total 641M
drwxr-xr-x 3 root root 4.0K Oct 21 14:53 common
-rw-r--r-- 1 root root 3.6K Sep  9 19:44 common.sh
-rw-r--r-- 1 root root 5.8K Oct 22 14:08 docker-compose.yml
-rw-r--r-- 1 root root 641M Sep  9 19:44 harbor.v2.14.0.tar.gz
-rw-r--r-- 1 root root 1.4K Oct 22 14:08 harbor.yml
-rw-r--r-- 1 root root  15K Sep  9 19:44 harbor.yml.tmpl
-rwxr-xr-x 1 root root 2.0K Sep  9 19:44 install.sh
-rw-r--r-- 1 root root  12K Sep  9 19:44 LICENSE
-rwxr-xr-x 1 root root 2.2K Sep  9 19:44 prepare

接下来我们依次对文件功能进行梳理:

  1. harbor.yml 是Harbor 的主配置文件,定义服务协议、端口、数据库、存储路径、扫描策略等关键参数
  2. harbor.yml.tmpl 是harbor.yml 的模板文件,初次安装时基于此文件生成配置
  3. docker-compose.yml 定义 Harbor 各组件的容器部署规范(如 Core、JobService、Registry 等),包括镜像版本、网络、卷挂载,此文件是由 prepare 脚本基于 harbor.yml 动态生成
  4. install.sh 一键安装/重新安装 Harbor 的入口脚本,调用 prepare 并启动容器
bash
./install.sh  # 全新安装  
./install.sh --with-trivy  # 启用漏洞扫描组件
  1. prepare 预处理脚本,用于解析 harbor.yml 并生成动态的 docker-compose.yml,可以使用./prepare --validate 命令检查配置合法性

  2. common/ 目录 存放共享配置模板(如 Nginx 配置、认证模板),供 prepare 脚本渲染使用

  3. common.sh 封装安装过程中的通用函数(如日志输出、错误处理),被 install.sh 和 prepare 调用

  4. harbor.v2.14.0.tar.gz Harbor 的离线安装包,包含所有组件的 Docker 镜像初次安装时由 install.sh 自动解压并加载镜像。

安装和启动 Harbor ​

一旦您已配置 harbor.yml 从 harbor.yml.tmpl 复制,并可选地设置了存储后端,您可以通过使用 install.sh 脚本来安装和启动 Harbor。

请注意,在线安装程序下载所有 Harbor 镜像可能需要一些时间。

默认的 Harbor 安装不包括 Trivy 服务。运行以下命令

bash
sudo ./install.sh

要使用 Trivy 服务安装 Harbor,在运行 install.sh 时添加 --with-trivy 参数:

bash
sudo ./install.sh --with-trivy

关于 Trivy 的更多信息,请参阅 Trivy 文档。

如果安装成功,您可以通过浏览器访问 Harbor 界面,地址为 http://reg.yourdomain.com ,将 reg.yourdomain.com 更改为您在 harbor.yml 中配置的主机名。

如果您在 harbor.yml 中没有更改,默认的管理员用户名和密码是 admin 和 Harbor12345 。

测试镜像上传 ​

登录到管理门户并创建一个新的项目,例如, myproject 。然后您可以使用 Docker 命令登录 Harbor,标记镜像并将它们推送到 Harbor。

bash
sudo docker login reg.yourdomain.com
sudo docker push reg.yourdomain.com/myproject/myrepo:mytag