Almacenar imágenes de contenedor de Docker en Artifact Registry

Artifact Registry proporciona una ubicación única para administrar imágenes de contenedores de Docker y paquetes privados.

Esta guía de inicio rápido te muestra cómo hacer lo siguiente:

  • Crea un repositorio privado de Docker en Artifact Registry
  • Configura la autenticación
  • Envía una imagen al repositorio
  • Extrae la imagen del repositorio

Para seguir la guía paso a paso sobre esta tarea de forma directa en la consola de Google Cloud, haz clic en Guiarme:

Guiarme


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 la consola de Google Cloud, 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 Google Cloud.

  4. Habilita la API de Artifact Registry.

    Habilita la API

  5. En la página del selector de proyectos de la consola de Google Cloud, 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 Google Cloud.

  7. Habilita la API de Artifact 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 Google Cloud CLI, la interfaz de línea de comandos principal de Google Cloud.
Shell local
Si prefieres usar tu shell local, debes instalar Docker y gcloud CLI en tu entorno.

Inicia Cloud Shell

Para iniciar Cloud Shell, sigue estos pasos:

  1. Ve a la consola de Google Cloud.

    Consola de Google Cloud

  2. 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 en la consola. Usa esta shell para ejecutar los comandos de gcloud.

Configura una shell local

Para instalar gcloud CLI y Docker, sigue estos 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 --rm busybox date
    

    La marca --rm borra la instancia de contenedor cuando se sale.

Crea un repositorio de Docker

Crea un repositorio de Docker a fin de almacenar la imagen de muestra para esta guía de inicio rápido.

Console

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. Haz clic en add Crear repositorio.

  3. Especifica quickstart-docker-repo como el nombre del repositorio.

  4. Elige Docker como formato y Standard como modo.

  5. En Tipo de ubicación, selecciona Región y, luego, elige la ubicación us-central1.

  6. Haz clic en Crear.

El repositorio se agrega a la lista de repositorios.

gcloud

  1. Ejecuta el siguiente comando para crear un nuevo repositorio de Docker llamado quickstart-docker-repo en la ubicación us-central1 con la descripción “repositorio de Docker”.

    gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
        --location=us-central1 --description="Docker repository" \
        --project=PROJECT
    

    En el ejemplo anterior, PROJECT es el ID del proyecto de Google Cloud.

  2. Ejecuta el siguiente comando para verificar que se haya creado el repositorio:

    gcloud artifacts repositories list \
        --project=PROJECT
    

Para obtener más información sobre los comandos de Artifact Registry, ejecuta el comando gcloud artifacts.

Configura la autenticación

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

Para configurar la autenticación en los repositorios de Docker en la región us-central1, ejecuta el siguiente comando:

gcloud auth configure-docker us-central1-docker.pkg.dev

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

Para obtener más información sobre otros métodos de autenticación, consulta Métodos de autenticación.

Cómo obtener una imagen para enviar

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

Ejecuta el siguiente comando para extraer la versión 1.0 de la imagen.

   docker pull us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

Las rutas de acceso de las imágenes en Artifact Registry incluyen varias partes. Para esta imagen de muestra:

  • us es la ubicación del repositorio.
  • docker.pkg.dev es el nombre de host para las imágenes de contenedor almacenadas en repositorios de Docker de Artifact Registry.
  • google-samples es el ID del repositorio.
  • containers/gke/ es la ruta de acceso a la imagen en google-samples.

Agrega la imagen al repositorio

Antes de enviar la imagen de Docker a Artifact Registry, debes etiquetarla con el nombre del repositorio.

Etiqueta la imagen con un nombre de registro

Etiquetar la imagen de Docker con el nombre de un repositorio 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 us-central1-docker.pkg.dev.

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

docker tag us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 \
us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

¿Por dónde

  • us-central1 es la ubicación del repositorio.
  • docker.pkg.dev es el nombre de host para el repositorio de Docker que creaste.
  • PROJECT es el ID del proyecto de Google Cloud. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • quickstart-docker-repo es el ID del repositorio que creaste.
  • quickstart-image es el nombre de imagen que deseas usar en el repositorio. El nombre de la imagen puede ser diferente del nombre de la imagen local. Para esta guía de inicio rápido, almacenarás la imagen directamente en el ID del repositorio quickstart-docker-repo.
  • 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 al repositorio que creaste.

Envía la imagen a Artifact 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 us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

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

Extrae la imagen de Artifact Registry

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

docker pull us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Reemplaza PROJECT por el ID del proyecto de Google Cloud. 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 [PROJECT-ID]/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/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.

Antes de quitar el repositorio, asegúrate de que las imágenes que quieres conservar estén disponibles en otra ubicación.

Para borrar el repositorio, haz lo siguiente:

Console

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. En la lista de repositorios, selecciona el repositorio quickstart-docker-repo.

  3. Haz clic en Borrar.

gcloud

Para borrar el repositorio quickstart-docker-repo, ejecuta el siguiente comando:

gcloud artifacts repositories delete quickstart-docker-repo --location=us-central1

¿Qué sigue?