Cómo iniciar sesión en el registro de contenedores

created: miércoles, feb. 26, 2025

Preparativos

Antes de poder usar el registro de contenedores DTZ, primero debe habilitar el servicio.

  1. Habilitar el servicio

instrucciones para habilitar el registro de contenedores

  1. Acceder al panel del registro de contenedores

enlace al panel del registro de contenedores

  1. Panel del Registro de Contenedores

panel del registro de contenedores

  1. Probar el endpoint del registro

Puede hacer clic en el enlace del panel para probar su instancia del registro. Este enlace debería llevarlo a la siguiente página.

sitio del registro de contenedores

Después de completar la configuración, necesita obtener la URL de su instancia desde el panel del registro de contenedores, en este caso, https://66fc19af.cr.dtz.dev/.

Así que todas las imágenes están alojadas bajo 66fc19af.cr.dtz.dev.

Inicio de sesión en Docker

La forma más fácil de iniciar sesión es mediante una clave API. Puede seguir la guía en nuestra documentación sobre cómo crear una clave API.

Para realizar el inicio de sesión puede usar la terminal:

docker login 66fc19af.cr.dtz.dev
Username: apikey
Password: {pegue aquí su clave API}

Login Succeeded

Esto registra sus credenciales en el demonio de docker y ahora puede subir y descargar imágenes de ese registro.

Credenciales para Kubernetes

En Kubernetes, la gestión de credenciales no puede manejarse interactuando directamente con el demonio de docker. Por lo tanto, debe proporcionar credenciales mediante las definiciones de despliegue como secret.

Si tiene acceso a kubectl, puede seguir la instrucción de la documentación oficial.

kubectl create secret docker-registry <nombre> \
  --docker-server=DOCKER_REGISTRY_SERVER \
  --docker-username=DOCKER_USER \
  --docker-password=DOCKER_PASSWORD \
  --docker-email=DOCKER_EMAIL

A menudo, el acceso a kubectl no es una opción, ya que todos los despliegues se ejecutan a través de algún sistema CI/CD que necesita que proporcione el secreto como YAML. Así que aquí están los pasos para crear manualmente dicho secreto.

  1. codifique en base64 sus credenciales
echo 'DOCKER_USER:DOCKER_PASSWORD' | base64
RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg==
  1. coloque la cadena de credenciales en un json de configuración de docker y guárdelo como credentials.json.
{
    "auths": {
        "66fc19af.cr.dtz.dev": {
            "auth": "RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg=="
        }
    }
}
  1. codifique en base64 todo el archivo
cat credentials.json | base64
ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
  1. cree un Secret con el archivo de credenciales codificado dentro.
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
  name: dtz-credentials
data:
  .dockerconfigjson: ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
  1. después de aplicar este secreto a su clúster de Kubernetes, podrá usar imágenes privadas.
apiVersion: v1
kind: Pod
metadata:
  name: private-ubuntu
spec:
  containers:
  - name: private-ubuntu-container
    image: 66fc19af.cr.dtz.dev/ubuntu
  imagePullSecrets:
  - name: dtz-credentials