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:
Antes de empezar
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry API.
-
Make sure that you have the following role or roles on the project: Artifact Registry Administrator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
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.
- 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
-
In the Google Cloud console, go to the IAM page.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Conceder acceso.
-
En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.
- En la lista Selecciona un rol, elige un rol.
- Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
- Haz clic en Guardar.
-
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry API.
-
Make sure that you have the following role or roles on the project: Artifact Registry Administrator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
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.
- 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
-
In the Google Cloud console, go to the IAM page.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Conceder acceso.
-
En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.
- En la lista Selecciona un rol, elige un rol.
- Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
- Haz clic en Guardar.
-
- 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.
Ve a la Google Cloud consola.
Haz clic en el botón Activar Cloud Shell:
.
Instala gcloud CLI. Para actualizar una instalación, ejecuta el comando
gcloud components update
.Instala Docker si aún no lo has hecho.
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.
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.
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.Abre la página Repositorios en la consola de Google Cloud .
Haz clic en Añadir Crear repositorio.
Especifica
quickstart-docker-repo
como nombre del repositorio.Elige Docker como formato y Estándar como modo.
En Tipo de ubicación, selecciona Región y, a continuación, elige la ubicación.
us-west1
Haz clic en Crear.
Ejecuta el siguiente comando para crear un repositorio de Docker llamado
quickstart-docker-repo
en la ubicaciónus-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
Ejecuta el siguiente comando para verificar que se ha creado el repositorio.
gcloud artifacts repositories list \ --project=PROJECT
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 repositoriocontainers
.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 repositorioquickstart-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 predeterminadalatest
.Abre la página Repositorios en la consola de Google Cloud .
En la lista de repositorios, selecciona el repositorio
quickstart-docker-repo
.Haz clic en Eliminar.
- Más información sobre cómo trabajar con imágenes de contenedor
- Más información sobre Docker
- Consulta nuestros recursos sobre DevOps y descubre el programa de investigación DevOps Research and Assessment (DORA).
Elige un shell
Para completar esta guía de inicio rápido, usa Cloud Shell o tu shell local.
Iniciar Cloud Shell
Para iniciar Cloud Shell, sigue estos pasos:
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:
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
El repositorio se añade a la lista de repositorios.
gcloud
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:
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:
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
:
), 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
:
), 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
gcloud
Para eliminar el repositorio quickstart-docker-repo
, ejecuta el siguiente comando:
gcloud artifacts repositories delete quickstart-docker-repo --location=us-west1