Artifact Registry es el servicio recomendado para administrar imágenes de contenedor. Container Registry sigue siendo compatible, pero solo recibirá correcciones de seguridad críticas. Obtén más información sobre la transición a Artifact Registry.

Guía de inicio rápido para Container Registry

En esta guía de inicio rápido, se describe cómo configurar Docker para Container Registry y, luego, enviar y extraer una imagen.

Google Cloud tiene dos servicios para almacenar y administrar imágenes de contenedores:

Artifact Registry (recomendado)

Un servicio para almacenar y administrar artefactos en repositorios privados, incluidas las imágenes de contenedores y los gráficos de Helm, y los paquetes de lenguajes. Es el registro de imágenes de contenedor recomendado para Google Cloud.

Prueba la guía de inicio rápido de Docker para familiarizarte con Artifact Registry.

Container Registry

Es un registro de imágenes de contenedor privado que admite formatos de imagen de Docker Image Manifest V2 y OCI. Proporciona un subconjunto de funciones de Artifact Registry.

Si actualmente no usas Container Registry, usa Artifact Registry. Para obtener una comparación entre Container Registry y Artifact Registry y la información sobre la transición de Container Registry a Artifact Registry, consulta Transición desde Container Registry.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  4. Habilita la API de Container Registry.

    Habilita la API

  5. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  7. Habilita la API de Container Registry.

    Habilita la API

Elige una shell

Para completar esta guía de inicio rápido, usa Cloud Shell o tu shell local.

Cloud Shell
Cloud Shell es un entorno de shell que se usa para administrar recursos alojados en Google Cloud. Viene preinstalado con Docker y la CLI de Google Cloud, la interfaz de línea de comandos principal para Google Cloud.
Shell local
Si prefieres usar tu shell local, debes instalar Docker y la CLI de gcloud en tu entorno.

Inicia Cloud Shell

Para iniciar Cloud Shell, sigue estos pasos:

  1. Ve a Google Cloud Console.

    Google Cloud Console

  2. En la barra de menú, haz clic en el botón Activar Cloud Shell: "".

Se abrirá una sesión de Cloud Shell dentro de un marco en la parte inferior de la consola. Usa esta shell para ejecutar los comandos de gcloud.

Configura una shell local

Si deseas instalar gcloud y Docker, sigue los siguientes pasos:

  1. Instala la CLI de gcloud. Para actualizar una instalación existente, ejecuta el comando gcloud components update.

  2. Instala Docker si aún no lo hiciste.

  3. Docker necesita acceso con privilegios para interactuar con los registros. En Linux o Windows, agrega el usuario que usas para ejecutar comandos de Docker al grupo de seguridad de Docker. Este paso no es necesario en Mac OS, ya que Docker Desktop se ejecuta en una máquina virtual como usuario raíz.

    Linux

    El grupo de seguridad de Docker se llama docker. Para agregar tu nombre de usuario, ejecuta el siguiente comando:

    sudo usermod -a -G docker ${USER}
    

    Windows

    El grupo de seguridad de Docker se llama docker-users. Para agregar un usuario desde el símbolo del sistema del administrador, ejecuta el siguiente comando:

    net localgroup docker-users DOMAIN\USERNAME /add
    

    Donde

    • DOMAIN es tu dominio de Windows.
    • USERNAME es tu nombre de usuario.
  4. Sal de tu cuenta y vuelve a acceder para que se apliquen los cambios de membresía de grupo. Si utilizas una máquina virtual, es posible que tengas que reiniciarla para que se apliquen los cambios de membresía.

  5. Para asegurarte de que Docker esté funcionando, ejecuta el siguiente comando de Docker, que muestra la hora y la fecha actuales:

  6. docker run busybox date
    

Configura la autenticación

Antes de poder enviar o extraer imágenes, debes configurar Docker para que use la CLI de Google Cloud a fin de autenticar solicitudes en Container Registry.

Ejecuta el siguiente comando:

gcloud auth configure-docker

El comando actualiza tu configuración de Docker. Ahora puedes conectarte con Container Registry en tu proyecto de Google Cloud para enviar y extraer imágenes.

Cómo obtener una imagen para enviar

Para esta guía de inicio rápido, enviarás una imagen de muestra llamada hello-app.

  1. Cambia a un directorio en el que quieras guardar la imagen.
  2. Ejecuta el siguiente comando para extraer la versión 1.0 de la imagen.

    docker pull gcr.io/google-samples/hello-app:1.0
    

Agrega la imagen a Container Registry

Para agregar una imagen a Container Registry, debes etiquetarla y, luego, enviarla al registro.

Etiqueta la imagen con un nombre de registro

Etiquetar la imagen de Docker con un nombre de registro configura el comando docker push para enviar la imagen a una ubicación específica. Para esta guía de inicio rápido, la ubicación del host es gcr.io.

Ejecuta el siguiente comando para etiquetar la imagen como quickstart-image:tag1:

docker tag gcr.io/google-samples/hello-app:1.0 gcr.io/PROJECT_ID/quickstart-image:tag1

Reemplaza lo siguiente:

  • PROJECT-ID es el ID del proyecto de Google Cloud Console, que debes agregar a tu comando. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • gcr.io es el nombre de host.
  • quickstart-image es el nombre de la imagen de Docker.
  • tag1 es una etiqueta que agregas a la imagen de Docker. Si no especificaste una etiqueta, Docker aplicará la etiqueta predeterminada latest.

Ahora estás listo para enviar la imagen a Container Registry.

Envía la imagen a Container Registry

Una vez que hayas configurado la autenticación y etiquetado la imagen local, puedes enviar la imagen al repositorio que creaste.

Para enviar la imagen de Docker, ejecuta el siguiente comando:

docker push gcr.io/PROJECT_ID/quickstart-image:tag1

En el ejemplo anterior, PROJECT_ID es el ID del proyecto de Google Cloud Console. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

Cuando envías una imagen a una nueva ubicación de host, el servicio crea el bucket de almacenamiento subyacente único para tu proyecto. Puedes ver las imágenes alojadas en Container Registry mediante Cloud Console o si visitas el nombre del registro de la imagen en tu navegador web: http://gcr.io/PROJECT_ID/quickstart-image.

Extrae la imagen de Container Registry

Para extraer la imagen de Container Registry en tu máquina local, ejecuta el siguiente comando:

docker pull gcr.io/PROJECT_ID/quickstart-image:tag1

Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud Console. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

Deberías ver un resultado similar al siguiente:

latest: Pulling from my-project/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for gcr.io/my-project/quickstart-image:tag1

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página.

Ejecuta el siguiente comando para borrar la imagen de Docker de Container Registry.

gcloud container images delete gcr.io/PROJECT_ID/quickstart-image:tag1 --force-delete-tags

Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud Console. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

¿Qué sigue?