Harbor-Instanzen verwenden TLS-Zertifikate (Transport Layer Security), die von der vertrauenswürdigen Stammzertifizierungsstelle (CA, Certificate Authority) Ihrer Organisation ausgestellt wurden. Dadurch wird die Verbindung zwischen Ihrem Docker-Client und der Harbor-Registry verschlüsselt, um Images vor unbefugtem Zugriff zu schützen.
Hinweise
Sie müssen diese Schritte ausführen, bevor Sie Ihre Containerbilder verwalten können:
- Installieren Sie Docker, falls es noch nicht installiert ist. Folgen Sie dazu der Anleitung unter https://docs.docker.com/engine/install/ubuntu/. Docker ist in Cloud Shell enthalten.
Docker benötigt für die Interaktion mit Registries Zugriff. Fügen Sie unter Linux oder Windows den Nutzer hinzu, mit dem Sie Docker-Befehle in der Docker-Sicherheitsgruppe ausführen. Dieser Schritt ist nicht für macOS erforderlich, da Docker Desktop auf einer virtuellen Maschine als Root-Nutzer ausgeführt wird.
Fügen Sie unter Linux den Nutzer hinzu:
sudo usermod -a -G docker USER
Für Windows:
net localgroup docker-users DOMAIN\USER /add
Ersetzen Sie
USER
durch den Nutzernamen, den Sie hinzufügen möchten.
Docker so konfigurieren, dass die Harbor-Stammzertifizierungsstelle vertrauenswürdig ist
Sie müssen Ihren lokalen Docker-Client so konfigurieren, dass er der Stamm-CA Ihrer Organisation vertraut, wenn Sie den Docker-Client für die Kommunikation mit der Harbor-Instanz verwenden.
Wenn Sie den Docker-Client so konfigurieren möchten, dass er der Stammzertifizierungsstelle vertraut, fordern Sie die Datei .crt
der Stammzertifizierungsstelle von Ihrem Organisationsadministrator an und kopieren Sie die Stammzertifizierungsstelle der Organisation in:
/etc/docker/certs.d/HARBOR_INSTANCE_URL/ca.crt
Ersetzen Sie HARBOR_INSTANCE_URL
durch die URL Ihrer Harbor-Instanz. Beispiel: harbor-1.org-1.zone1.google.gdc.test
Mit diesem Befehl kann Ihr Docker-Client eine HTTPS-Verbindung zur Harbor-Instanz herstellen.
Alternativ können Sie sich mit der gdcloud CLI in einem beliebigen Nutzercluster in der Organisation anmelden und die im Cluster gespeicherte Web-CA kopieren:
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
Ersetzen Sie HARBOR_INSTANCE_URL
durch die URL Ihrer Harbor-Instanz. Beispiel: harbor-1.org-1.zone1.google.gdc.test
Wenn die Konfiguration nicht erfolgreich ist, wird die folgende Fehlermeldung angezeigt:
Error response from daemon: Get "https://<HARBOR_INSTANCE_URL>": x509: certificate signed by unknown authority
Wiederholen Sie die Schritte zur Behebung des Problems und eskalieren Sie das Problem bei Bedarf an das GDC-Entwicklungsteam.