Harbor 執行個體會使用貴機構受信任的根憑證授權單位 (CA) 核發的傳輸層安全標準 (TLS) 憑證。這會加密 Docker 用戶端與 Harbor 登錄檔之間的連線,防止未經授權存取映像檔。
事前準備
您必須先完成下列步驟,才能管理容器映像檔:
- 如果尚未安裝 Docker,請按照 https://docs.docker.com/engine/install/ubuntu/ 的操作說明安裝 Docker。 Cloud Shell 內含 Docker。
Docker 需要具備權限的存取權,才能與登錄檔互動。在 Linux 或 Windows 上,將用於執行 Docker 指令的使用者新增至 Docker 安全性群組。在 macOS 上,Docker Desktop 會以 root 使用者身分在虛擬機器上執行,因此不需要執行這個步驟。
如果是 Linux,請新增使用者:
sudo usermod -a -G docker USER
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 工程團隊回報。