Almacenar imágenes de contenedor Docker en Artifact Registry

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

En esta guía de inicio rápido se explica cómo hacer lo siguiente:

  • Crear un repositorio de Docker privado en Artifact Registry
  • Configurar la autenticación
  • Enviar una imagen al repositorio
  • Extraer la imagen del repositorio

Para seguir las instrucciones paso a paso de esta tarea directamente en la Google Cloud consola, haz clic en Ayúdame:

Guíame


Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry API.

    Enable the API

  5. Make sure that you have the following role or roles on the project: Artifact Registry Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Conceder acceso.
    4. En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.

    5. En la lista Selecciona un rol, elige un rol.
    6. Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
    7. Haz clic en Guardar.
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Verify that billing is enabled for your Google Cloud project.

  8. Enable the Artifact Registry API.

    Enable the API

  9. Make sure that you have the following role or roles on the project: Artifact Registry Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Conceder acceso.
    4. En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.

    5. En la lista Selecciona un rol, elige un rol.
    6. Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
    7. Haz clic en Guardar.
  10. Elige un 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 para gestionar recursos alojados en Google Cloud. Viene preinstalada con Docker y la CLI de Google Cloud, la interfaz de línea de comandos principal de Google Cloud.
    Shell local
    Si prefieres usar tu shell local, debes instalar Docker y la CLI de gcloud en tu entorno.

    Iniciar Cloud Shell

    Para iniciar Cloud Shell, sigue estos pasos:

    1. Ve a la Google Cloud consola.

      Google Cloud console

    2. Haz clic en el botón Activar Cloud Shell:  .

    Se abrirá una sesión de Cloud Shell en un marco de la parte inferior de la consola. Esta shell se usa para ejecutar comandos gcloud.

    Configurar un shell local

    Para instalar gcloud CLI y Docker, sigue estos pasos:

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

    2. Instala Docker si aún no lo has hecho.

    3. Docker requiere acceso con privilegios para interactuar con los registros. En Linux o Windows, añade el usuario que usas para ejecutar comandos de Docker al grupo de seguridad de Docker. Este paso no es necesario en macOS, 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 añadir 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 añadir un usuario desde la petición de comando del administrador, ejecuta el siguiente comando:

      net localgroup docker-users DOMAIN\USERNAME /add
      

      Dónde

      • DOMAIN es tu dominio de Windows.
      • USERNAME es tu nombre de usuario.
    4. Cierra sesión y vuelve a iniciarla para que se apliquen los cambios en la pertenencia a grupos. Si usas una máquina virtual, es posible que tengas que reiniciarla para que los cambios en la suscripción surtan efecto.

    5. Para asegurarte de que Docker se está ejecutando, ejecuta el siguiente comando de Docker, que devuelve la hora y la fecha actuales:

      docker run --rm busybox date
      

      La marca --rm elimina la instancia del contenedor al salir.

    Crear un repositorio de Docker

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

    Consola

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

      Abre la página Repositorios.

    2. Haz clic en Añadir Crear repositorio.

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

    4. Elige Docker como formato y Estándar como modo.

    5. En Tipo de ubicación, selecciona Región y, a continuación, elige la ubicación. us-west1

    6. Haz clic en Crear.

    El repositorio se añade a la lista de repositorios.

    gcloud

    1. Ejecuta el siguiente comando para crear un repositorio de Docker llamado quickstart-docker-repo en la ubicación us-west1 con la descripción "docker repository".

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

      Donde PROJECT es el ID de tu proyecto. Google Cloud

    2. Ejecuta el siguiente comando para verificar que se ha 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.

    Configurar la autenticación

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

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

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

    El comando actualiza tu configuración de Docker. Ahora puede conectarse con Artifact Registry en su Google Cloud proyecto para insertar y extraer imágenes.

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

    Obtener una imagen para enviarla

    En esta guía de inicio rápido, enviarás una imagen de ejemplo 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 las imágenes en Artifact Registry incluyen varias partes. En esta imagen de muestra:

    • us-docker.pkg.dev es el nombre de host de las imágenes de contenedor almacenadas en los repositorios de Docker de Artifact Registry, que incluye la ubicación del repositorio (us).
    • google-samples es el ID del proyecto.
    • containers es el ID del repositorio.
    • /gke/hello-app es la ruta de la imagen en el repositorio containers.

    Añade la imagen al repositorio

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

    Etiqueta la imagen con un nombre de registro.

    Si etiquetas la imagen Docker con un nombre de repositorio, se configurará el comando docker push para enviar la imagen a una ubicación específica. En esta guía de inicio rápido, la ubicación del host es us-west1-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-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

    Donde:

    • us-west1 es la ubicación del repositorio.
    • us-west1-docker.pkg.dev es el nombre de host del repositorio de Docker que has creado.
    • PROJECT es el Google Cloud ID de tu proyecto. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con ámbito de dominio.
    • quickstart-docker-repo es el ID del repositorio que has creado.
    • quickstart-image es el nombre de la imagen que quieres usar en el repositorio. El nombre de la imagen puede ser diferente del nombre de la imagen local. En 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 vas a añadir a la imagen Docker. Si no has especificado ninguna etiqueta, Docker aplicará la etiqueta predeterminada latest.

    Ahora puedes enviar la imagen al repositorio que has creado.

    Enviar la imagen a Artifact Registry

    Una vez que hayas configurado la autenticación y etiquetado la imagen local, podrás enviar la imagen al repositorio que hayas creado.

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

    docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
    Sustituye PROJECT por tu Google Cloud ID de proyecto. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con ámbito de dominio.

    Extraer la imagen de Artifact Registry

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

    docker pull us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
    Sustituye PROJECT por tu Google Cloud ID de proyecto. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con ámbito de dominio.
    latest: Pulling from [PROJECT-ID]/quickstart-image:tag1
    Digest: sha256:70c42...
    Status: Image is up to date for us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
    

    Limpieza

    Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.

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

    Para eliminar el repositorio, sigue estos pasos:

    Consola

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

      Abre la página Repositorios.

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

    3. Haz clic en Eliminar.

    gcloud

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

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

    Siguientes pasos