Come effettuare l'accesso al registro dei container

created: mercoledì, feb 26, 2025

Preparativi

Prima di poter utilizzare il registro dei container DTZ, devi prima abilitare il servizio.

  1. Abilitare il servizio

istruzioni per abilitare il registro dei container

  1. Accedere alla dashboard del registro dei container

link della dashboard del registro dei container

  1. Dashboard del Registro dei Container

dashboard del registro dei container

  1. Test dell’endpoint del registro

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

sito del registro dei container

Dopo aver completato la configurazione, devi recuperare l’URL della tua istanza dalla dashboard del registro dei container, in questo caso, https://66fc19af.cr.dtz.dev/.

Quindi tutte le immagini sono ospitate sotto 66fc19af.cr.dtz.dev.

Accesso Docker

Il modo più semplice per effettuare il login è tramite una API-key. Puoi seguire la guida nella nostra documentazione su come creare una API-key.

Per eseguire il login puoi usare il terminale:

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

Login Succeeded

Questo registra le tue credenziali nel demone Docker e ora puoi inviare (push) e scaricare (pull) immagini da quel registro.

Credenziali Kubernetes

In Kubernetes, la gestione delle credenziali non può essere effettuata interagendo direttamente con il demone Docker. Pertanto devi fornire le credenziali tramite le definizioni di deployment come secret.

Se hai accesso a kubectl, puoi seguire le istruzioni della 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 richiede di fornire il secret come YAML. Ecco quindi i passaggi da seguire per creare manualmente un secret del genere.

  1. codifica in base64 le tue credenziali
echo 'DOCKER_USER:DOCKER_PASSWORD' | base64
RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg==
  1. inserisci la stringa delle credenziali in un Docker config JSON e salvala come credentials.json.
{
    "auths": {
        "66fc19af.cr.dtz.dev": {
            "auth": "RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg=="
        }
    }
}
  1. codifica in base64 l’intero file
cat credentials.json | base64
ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
  1. crea un Secret con il file di credenziali codificato al suo 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 usare 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