設定 Docker 信任 Harbor 根 CA

Harbor 執行個體會使用貴機構受信任的根憑證授權單位 (CA) 核發的傳輸層安全標準 (TLS) 憑證。這會加密 Docker 用戶端與 Harbor 登錄檔之間的連線,防止未經授權存取映像檔。

事前準備

您必須先完成下列步驟,才能管理容器映像檔:

  1. 如果尚未安裝 Docker,請按照 https://docs.docker.com/engine/install/ubuntu/ 的操作說明安裝 Docker。 Cloud Shell 內含 Docker。
  2. Docker 需要具備權限的存取權,才能與登錄檔互動。在 Linux 或 Windows 上,將用於執行 Docker 指令的使用者新增至 Docker 安全性群組。在 macOS 上,Docker Desktop 會以 root 使用者身分在虛擬機器上執行,因此不需要執行這個步驟。

    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 登入機構中的任何使用者叢集,然後複製儲存在叢集中的網頁 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 工程團隊回報。