Harbor 安装问题排查

以下章节帮助您解决安装 Harbor 时遇到的问题。

访问 Harbor 日志

默认情况下, registry 数据持久化在主机的 /data/ 目录中。即使 Harbor 容器被移除和/或重新创建,此数据仍然保持不变,您可以编辑 harbor.yml 文件中的 data_volume 来更改此目录。

此外,Harbor 使用 rsyslog 收集每个容器的日志。默认情况下,这些日志文件存储在目标主机上的 /var/log/harbor/ 目录中,用于故障排除,您也可以在 harbor.yml 中更改日志目录。

Harbor 未启动或功能不正常

如果 Harbor 未启动或功能不正常,请运行以下命令检查是否所有 Harbor 容器都处于 Up 状态。

sudo docker compose ps
        Name                     Command               State                    Ports
  -----------------------------------------------------------------------------------------------------------------------------
  harbor-core         /harbor/start.sh                 Up
  harbor-db           /entrypoint.sh postgres          Up      5432/tcp
  harbor-jobservice   /harbor/start.sh                 Up
  harbor-log          /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp
  harbor-portal       nginx -g daemon off;             Up      80/tcp
  nginx               nginx -g daemon off;             Up      0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp
  redis               docker-entrypoint.sh redis ...   Up      6379/tcp
  registry            /entrypoint.sh /etc/regist ...   Up      5000/tcp
  registryctl         /harbor/start.sh                 Up

如果某个容器未处于 Up 状态,请查看 /var/log/harbor 中该容器的日志文件。例如,如果 harbor-core 容器未运行,请查看 core.log 日志文件。

使用 nginx 或负载均衡

如果 Harbor 在 nginx 代理或弹性负载均衡之后运行,请打开文件 common/config/nginx/nginx.conf 并搜索以下行。

proxy_set_header X-Forwarded-Proto $scheme;

如果代理已经有类似的设置,请从 location /location /v2/location /service/ 部分中删除它,并重新部署 Harbor。有关如何重新部署 Harbor 的说明,请参阅 重新配置 Harbor 和管理 Harbor 生命周期

排查 HTTPS 连接问题

如果您使用来自证书颁发机构的中间证书,请将中间证书与您自己的证书合并以创建证书捆绑包。运行以下命令。

cat intermediate-certificate.pem >> yourdomain.com.crt

当 Docker 守护进程在某些操作系统上运行时,您可能需要在操作系统级别信任该证书。例如,运行以下命令。

  • Ubuntu

    cp yourdomain.com.crt /usr/local/share/ca-certificates/yourdomain.com.crt 
    update-ca-certificates
    
  • Red Hat (CentOS 等)

    cp yourdomain.com.crt /etc/pki/ca-trust/source/anchors/yourdomain.com.crt
    update-ca-trust