Wie man sich im Container-Registry anmeldet

created: Mittwoch, Feb. 26, 2025

Vorbereitungen

Bevor Sie die DTZ Container-Registry verwenden können, müssen Sie den Dienst zuerst aktivieren.

  1. Dienst aktivieren

Anleitung zum Aktivieren der Container-Registry

  1. Zugriff auf das Dashboard der Container-Registry

Link zum Dashboard der Container-Registry

  1. Dashboard der Container-Registry

Dashboard der Container-Registry

  1. Testen des Registry-Endpunkts

Sie können den Link im Dashboard anklicken, um Ihre Registry-Instanz zu testen. Dieser Link sollte Sie zur folgenden Seite führen.

Seite der Container-Registry

Nach Abschluss der Einrichtung müssen Sie die URL Ihrer Instanz aus dem Dashboard der Container-Registry abrufen, in diesem Fall https://66fc19af.cr.dtz.dev/.

Alle Images werden also unter 66fc19af.cr.dtz.dev gehostet.

Docker Login

Die einfachste Möglichkeit, sich anzumelden, ist über den API-Schlüssel. Sie können der Anleitung in unserer Dokumentation folgen, wie man einen API-Schlüssel erstellt: wie man einen API-Schlüssel erstellt.

Um die Anmeldung durchzuführen, können Sie das Terminal verwenden:

docker login 66fc19af.cr.dtz.dev
Username: apikey
Password: {hier Ihren API-Schlüssel einfügen}

Login Succeeded

Dies registriert Ihre Anmeldeinformationen im Docker-Daemon, und Sie können nun Images an die Registry pushen oder von dort pullen.

Kubernetes-Zugangsdaten

In Kubernetes kann die Verwaltung der Zugangsdaten nicht durch eine direkte Interaktion mit dem Docker-Daemon erfolgen. Daher müssen Sie die Zugangsdaten als Secret in den Deployment-Definitionen bereitstellen.

Wenn Sie Zugriff auf kubectl haben, können Sie der Anleitung aus der offiziellen Dokumentation folgen.

kubectl create secret docker-registry <name> \
  --docker-server=DOCKER_REGISTRY_SERVER \
  --docker-username=DOCKER_USER \
  --docker-password=DOCKER_PASSWORD \
  --docker-email=DOCKER_EMAIL

Oftmals ist der Zugriff auf kubectl keine Option, da alle Deployments über ein CI/CD-System laufen, das das Secret als YAML benötigt. Hier sind die Schritte, um ein solches Secret manuell zu erstellen.

  1. Kodieren Sie Ihre Zugangsdaten mit base64
echo 'DOCKER_USER:DOCKER_PASSWORD' | base64
RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg==
  1. Fügen Sie den Zugangsdaten-String in eine Docker-Konfigurationsdatei JSON ein und speichern Sie diese als credentials.json.
{
    "auths": {
        "66fc19af.cr.dtz.dev": {
            "auth": "RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg=="
        }
    }
}
  1. Kodieren Sie die gesamte Datei mit base64
cat credentials.json | base64
ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
  1. Erstellen Sie ein Secret mit der kodierten Datei als Inhalt.
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
  name: dtz-credentials
data:
  .dockerconfigjson: ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
  1. Nach dem Anwenden dieses Secrets auf Ihren Kubernetes-Cluster können Sie private Images verwenden.
apiVersion: v1
kind: Pod
metadata:
  name: private-ubuntu
spec:
  containers:
  - name: private-ubuntu-container
    image: 66fc19af.cr.dtz.dev/ubuntu
  imagePullSecrets:
  - name: dtz-credentials