Prima di poter utilizzare il container registry di DTZ, è necessario abilitare il servizio.



Puoi cliccare sul link nella dashboard per testare la tua istanza del registry. Questo link dovrebbe condurti alla seguente pagina.

Dopo aver completato la configurazione, devi recuperare l’URL della tua istanza dalla dashboard del container registry, in questo caso, https://66fc19af.cr.dtz.dev/.
Quindi tutte le immagini sono ospitate sotto 66fc19af.cr.dtz.dev.
Il modo più semplice per effettuare il login è tramite API-key.
Puoi seguire la guida nella nostra documentazione su come creare un’API-key.
Per eseguire il login puoi usare il terminale:
docker login 66fc19af.cr.dtz.dev
Username: apikey
Password: {inserisci qui la tua API-key}
Login Succeeded
Questo registra le tue credenziali nel docker daemon e ora puoi pushare e pullare immagini da quel registry.
In Kubernetes, la gestione delle credenziali non può essere fatta interagendo direttamente con il docker daemon. Perciò devi fornire le credenziali tramite le definizioni di deployment come secret.
Se hai accesso a kubectl, puoi seguire le istruzioni dalla documentazione ufficiale.
kubectl create secret docker-registry <name> \
--docker-server=DOCKER_REGISTRY_SERVER \
--docker-username=DOCKER_USER \
--docker-password=DOCKER_PASSWORD \
--docker-email=DOCKER_EMAIL
Spesso, l’accesso a kubectl non è un’opzione, poiché tutti i deployment vengono eseguiti tramite un sistema CI/CD che necessita di ricevere il secret in formato YAML.
Ecco quindi i passaggi per creare manualmente un secret simile.
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