Come effettuare il login nel container registry

created: mercoledì, feb 26, 2025

Preparations

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

  1. Abilitare il servizio

enable container registry instructions

  1. Accedere alla dashboard del container registry

container regsitry dashbord link

  1. Dashboard del Container Registry

container registry dashboard

  1. Testare l’endpoint del registry

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

container registry site

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.

Docker Login

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.

Kubernetes Credentials

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.

  1. codifica base64 delle tue credenziali
echo 'DOCKER_USER:DOCKER_PASSWORD' | base64
RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg==
  1. inserisci la stringa delle credenziali in una configurazione docker json e salvala come credentials.json.
{
    "auths": {
        "66fc19af.cr.dtz.dev": {
            "auth": "RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg=="
        }
    }
}
  1. codifica base64 dell’intero file
cat credentials.json | base64
ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
  1. crea un Secret con il file delle credenziali codificato all’interno.
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
  name: dtz-credentials
data:
  .dockerconfigjson: ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
  1. dopo aver applicato questo secret al tuo cluster kubernetes, puoi utilizzare immagini private.
apiVersion: v1
kind: Pod
metadata:
  name: private-ubuntu
spec:
  containers:
  - name: private-ubuntu-container
    image: 66fc19af.cr.dtz.dev/ubuntu
  imagePullSecrets:
  - name: dtz-credentials