Wie man sich beim 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. Auf das Dashboard der Container-Registry zugreifen

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-Anmeldung

Der einfachste Weg, sich anzumelden, ist per API-Key. Sie können der Anleitung in unserer Dokumentation folgen: wie man einen API-Key erstellt.

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

docker login 66fc19af.cr.dtz.dev
Username: apikey
Password: {past in you API-key here}

Login Succeeded

Damit werden Ihre Anmeldedaten im Docker-Daemon registriert und Sie können nun Images in diese Registry pushen und daraus pullen.

Kubernetes-Anmeldeinformationen

In Kubernetes können Anmeldeinformationen nicht durch direkte Interaktion mit dem Docker-Daemon verwaltet werden. Daher müssen Sie die Anmeldeinformationen in den 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

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 daher die Schritte, um ein solches Secret manuell zu erstellen.

  1. Kodieren Sie Ihre Anmeldeinformationen in base64
echo 'DOCKER_USER:DOCKER_PASSWORD' | base64
RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg==
  1. Platzieren Sie die Anmeldezeichenfolge in einer Docker-Config-JSON und speichern Sie diese als credentials.json.
{
    "auths": {
        "66fc19af.cr.dtz.dev": {
            "auth": "RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg=="
        }
    }
}
  1. Kodieren Sie die gesamte Datei in base64
cat credentials.json | base64
ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
  1. Erstellen Sie ein Secret mit der kodierten Anmeldeinformationsdatei.
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
  name: dtz-credentials
data:
  .dockerconfigjson: ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
  1. Nachdem Sie dieses Secret in Ihrem Kubernetes-Cluster angewendet haben, 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