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 de DTZ, primero debes 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

Puedes hacer clic en el enlace del panel para probar tu instancia del registro. Este enlace debería llevarte a la siguiente página.

sitio del registro de contenedores

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

Por lo tanto, todas las imágenes se alojan 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. Puedes seguir la guía en nuestra documentación sobre cómo crear una clave API.

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

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

Login Succeeded

Esto registra tus credenciales en el daemon de Docker y ahora puedes enviar (push) y descargar (pull) imágenes a ese registro.

Credenciales de Kubernetes

En Kubernetes, la gestión de credenciales no puede hacerse interactuando directamente con el daemon de Docker. Por ello necesitas proporcionar las credenciales a través de las definiciones de despliegue como Secret.

Si tienes acceso a kubectl, puedes seguir las instrucciones de la documentación oficial.

kubectl create secret docker-registry <name> \
  --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 realizan a través de algún sistema CI/CD que requiere que proporciones el Secret como YAML. Así que aquí están los pasos para crear manualmente dicho Secret.

  1. Codifica tus credenciales en base64
echo 'DOCKER_USER:DOCKER_PASSWORD' | base64
RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg==
  1. coloca la cadena de credenciales dentro de un JSON de configuración de Docker y guarda esto como credentials.json.
{
    "auths": {
        "66fc19af.cr.dtz.dev": {
            "auth": "RE9DS0VSX1VTRVI6RE9DS0VSX1BBU1NXT1JECg=="
        }
    }
}
  1. Codifica todo el archivo en base64
cat credentials.json | base64
ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
  1. Crea un Secret con el archivo de credenciales codificado en su interior.
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
  name: dtz-credentials
data:
  .dockerconfigjson: ewogICAgImF1dGhzIjogewogICAgICAgICI2NmZjMTlhZi5jci5kdHouZGV2IjogewogICAgICAgICAgICAiYXV0aCI6ICJSRTlEUzBWU1gxVlRSVkk2UkU5RFMwVlNYMUJCVTFOWFQxSkVDZz09IgogICAgICAgIH0KICAgIH0KfQo=
  1. después de aplicar este Secret a tu clúster de Kubernetes, puedes 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