Harbor インスタンスは、組織の信頼できるルート認証局(CA)によって発行された Transport Layer Security(TLS)証明書を使用します。これにより、Docker クライアントと Harbor レジストリ間の接続が暗号化され、イメージが不正アクセスから保護されます。
始める前に
コンテナ イメージを管理する前に、次の手順を行う必要があります。
- https://docs.docker.com/engine/install/ubuntu/ の手順に沿って、Docker をまだインストールしていない場合はインストールします。Docker は Cloud Shell に含まれています。
Docker がレジストリを操作するには特権アクセスが必要です。Linux や Windows では、Docker コマンドを実行するユーザーを Docker セキュリティ グループに追加します。Docker Desktop は、root ユーザーとして仮想マシンで実行されるため、この手順は MacOS では不要です。
Linux の場合は、ユーザーを追加します。
sudo usermod -a -G docker USER
Windows の場合:
net localgroup docker-users DOMAIN\USER /add
USER
は、追加するユーザー名に置き換えます。
Harbor ルート CA を信頼するように Docker を構成する
Docker クライアントを使用して Harbor インスタンスと通信する場合は、組織のルート CA を信頼するようにローカル Docker クライアントを構成する必要があります。
ルート CA を信頼するように Docker クライアントを構成するには、組織の管理者にルート CA の .crt
ファイルをリクエストし、組織のルート CA を次の場所にコピーします。
/etc/docker/certs.d/HARBOR_INSTANCE_URL/ca.crt
HARBOR_INSTANCE_URL
は、Harbor インスタンスの URL に置き換えます。例: 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 インスタンスの URL に置き換えます。例: harbor-1.org-1.zone1.google.gdc.test
構成が失敗すると、次のエラー メッセージが表示されます。
Error response from daemon: Get "https://<HARBOR_INSTANCE_URL>": x509: certificate signed by unknown authority
この問題を解決する手順を繰り返し、必要に応じて GDC エンジニアリングにエスカレーションします。