Wie man sich im Container-Registry anmeldet

created: Mittwoch, Feb. 26, 2025

Preparations

Bevor Sie die DTZ Container-Registry nutzen können, müssen Sie den Dienst zunächst aktivieren.

  1. Dienst aktivieren

enable container registry instructions

  1. Zugriff auf das Container-Registry-Dashboard

container regsitry dashbord link

  1. Container Registry Dashboard

container registry dashboard

  1. Testen des Registry-Endpunkts

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

container registry site

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

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

Docker Login

Der einfachste Weg, sich anzumelden, ist über den API-Schlüssel. Folgen Sie der Anleitung in unserer Dokumentation, 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: {API-Schlüssel hier einfügen}

Login Succeeded

Dies registriert Ihre Anmeldedaten im Docker-Daemon und Sie können jetzt Images in diese Registry pushen und davon pullen.

Kubernetes Credentials

In Kubernetes kann die Verwaltung von Anmeldedaten nicht durch direkte Interaktion mit dem Docker-Daemon erfolgen. Daher müssen Sie Anmeldedaten über die Deployment-Definitionen als Secret bereitstellen.

Wenn Sie Zugriff auf kubectl haben, können Sie der Anleitung in 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

Oft ist der Zugriff auf kubectl keine Option, da alle Deployments über ein CI/CD-System laufen, welches das Secret als YAML bereitgestellt haben möchte. Hier sind die Schritte, um ein solches Secret manuell zu erstellen.

  1. Kodieren Sie Ihre Anmeldedaten mit base64
echo 'DOCKER_USER:DOCKER_PASSWORD' | base64
RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg==
  1. Platzieren Sie die Anmeldedaten in einer Docker-Konfigurationsdatei 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 Anmeldedatei.
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