配置 Docker 以信任 Harbor 根 CA

Harbor 实例使用由组织的可信根证书授权机构 (CA) 颁发的传输层安全协议 (TLS) 证书。这会加密 Docker 客户端与 Harbor 注册表之间的连接,以保护映像免遭未经授权的访问。

准备工作

在管理容器映像之前,您必须执行以下步骤:

  1. 如果尚未安装 Docker,请按照 https://docs.docker.com/engine/install/ubuntu/ 中的说明进行安装。Cloud Shell 中包含 Docker。
  2. Docker 需要特别访问权限才能与注册表进行交互。在 Linux 或 Windows 上,将您用于运行 Docker 命令的用户添加到 Docker 安全群组。在 macOS 上,Docker Desktop 以根用户身份在虚拟机上运行,因此无需执行此步骤。

    1. 对于 Linux,请添加用户:

        sudo usermod -a -G docker USER
      
    2. 对于 Windows:

        net localgroup docker-users DOMAIN\USER /add
      

      USER 替换为您要添加的用户名。

配置 Docker 以信任 Harbor 根 CA

使用 Docker 客户端与 Harbor 实例通信时,您必须将本地 Docker 客户端配置为信任组织的根 CA。

如需配置 Docker 客户端以信任根 CA,请向组织管理员请求根 CA 的 .crt 文件,并将组织根 CA 复制到以下位置:

/etc/docker/certs.d/HARBOR_INSTANCE_URL/ca.crt

HARBOR_INSTANCE_URL 替换为您的 Harbor 实例的网址。例如 harbor-1.org-1.zone1.google.gdc.test

此命令可让您的 Docker 客户端与 Harbor 实例建立 HTTPS 连接。

或者,使用 gdcloud CLI 登录组织中的任何用户集群,并复制保存在集群中的 Web CA:

  export REGISTRY=HARBOR_INSTANCE_URL
  mkdir -p /etc/docker/certs.d/${REGISTRY} && \echo $(kubectl get secret org-web-ca -n istio-system -o
  jsonpath='{.data.ca\.crt}') | openssl base64 -A -d >
  /etc/docker/certs.d/${REGISTRY}/ca.crt

HARBOR_INSTANCE_URL 替换为您的 Harbor 实例的网址。例如 harbor-1.org-1.zone1.google.gdc.test

如果配置不成功,您会看到以下错误消息:

Error response from daemon: Get "https://<HARBOR_INSTANCE_URL>": x509: certificate signed by unknown authority

重复执行这些步骤来解决此问题,如有必要,请上报给 GDC 工程团队。