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 en esta tarea directamente en la consola de Google Cloud, haz clic en Guiarme:
Antes de comenzar
- 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry 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 gcloud CLI en tu entorno.
Inicia Cloud Shell
Para iniciar Cloud Shell, sigue estos pasos:
Ve a la consola de Google Cloud.
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:
Instala la CLI de gcloud. Para actualizar una campaña para la instalación, ejecuta el comando
gcloud components update
.Instala Docker si aún no lo hiciste.
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 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 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.
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.
Para asegurarte de que Docker esté funcionando, ejecuta el siguiente comando de Docker, que muestra la hora y la fecha actuales:
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 para almacenar la imagen de muestra de esta guía de inicio rápido.
Console
Abre la página Repositorios en la consola de Google Cloud.
Haz clic en Agregar Crear repositorio.
Especifica
quickstart-docker-repo
como el nombre del repositorio.Elige Docker como formato y Estándar como modo.
En Tipo de ubicación, selecciona Región y, luego, elige la ubicación
us-west1
.Haga clic en Crear.
El repositorio se agrega a la lista de repositorios.
gcloud
Ejecuta el siguiente comando para crear un nuevo repositorio de Docker llamado
quickstart-docker-repo
en la ubicaciónus-west1
con la descripción “repositorio de Docker”.gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location=us-west1 --description="Docker repository" \ --project=PROJECT
En el ejemplo anterior, PROJECT es el ID del proyecto de Google Cloud.
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 de modo que puedas autenticar las solicitudes a Artifact Registry.
Para configurar la autenticación en los repositorios de Docker en 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 puedes conectarte con Artifact Registry en tu proyecto de Google Cloud para enviar y extraer imágenes.
Para obtener 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 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 acceso a la imagen en el repositoriocontainers
.
Agrega la imagen al repositorio
Antes de enviar la imagen de Docker a Artifact Registry, debes etiquétalo 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-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
Dónde
us-west1
es la ubicación del repositorio.us-west1.docker.pkg.dev
es el nombre de host del repositorio de Docker que creaste.- PROJECT es el ID de tu 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 al 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 agregas a la imagen de Docker. Si no especificaste una etiqueta, Docker aplicará la etiqueta predeterminadalatest
.
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-west1-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-west1-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-west1-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 usaste 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
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 Borrar.
gcloud
Para borrar el repositorio quickstart-docker-repo
, ejecuta el siguiente comando:
gcloud artifacts repositories delete quickstart-docker-repo --location=us-west1
¿Qué sigue?
- Obtén más información sobre cómo trabajar con imágenes de contenedor.
- Obtén más información acerca de Docker.
- Lee nuestros recursos sobre DevOps y explora el programa de investigación DevOps Research and Assessment (DORA).