Bevor Sie die DTZ Container-Registry verwenden können, müssen Sie den Dienst zuerst aktivieren.
Sie können den Link im Dashboard anklicken, um Ihre Registry-Instanz zu testen. Dieser Link sollte Sie zur folgenden Seite führen.
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.
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.
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.
echo 'DOCKER_USER:DOCKER_PASSWORD' | base64
RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg==
credentials.json
.{
"auths": {
"66fc19af.cr.dtz.dev": {
"auth": "RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg=="
}
}
}
cat credentials.json | base64
ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
name: dtz-credentials
data:
.dockerconfigjson: ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
apiVersion: v1
kind: Pod
metadata:
name: private-ubuntu
spec:
containers:
- name: private-ubuntu-container
image: 66fc19af.cr.dtz.dev/ubuntu
imagePullSecrets:
- name: dtz-credentials