Crea un repositorio remoto de Docker Hub
Crea un repositorio remoto para que actúe como proxy de Docker Hub.
Antes de comenzar
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the Artifact Registry, Secret Manager APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Instala Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init - Crea una cuenta de Docker Hub.
Roles obligatorios
Para obtener los permisos que necesitas para crear un repositorio remoto de Docker Hub, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Para crear repositorios remotos y otorgar acceso a repositorios individuales, debes tener el rol de administrador de Artifact Registry (
roles/artifactregistry.admin) en el proyecto. -
Para crear y administrar secretos: rol de administrador de Secret Manager (
roles/secretmanager.admin) en el proyecto
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
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 Cloud de Confiance by S3NS. Viene preinstalado con Docker y la CLI de Google Cloud, la interfaz de línea de comandos principal para Cloud de Confiance.
- 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 Cloud de Confiance .
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, realiza los siguientes pasos:
Instala la CLI de gcloud. Para actualizar una instalación existente, ejecuta el comando de
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 /addDonde
- 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 dateLa marca
--rmborra la instancia de contenedor cuando se sale.
Configura la autenticación de Docker Hub
Para evitar el uso de la cuota de Docker Hub no autenticada, te recomendamos que te autentiques en Docker Hub cuando uses repositorios remotos. Los repositorios remotos te permiten agregar tu nombre de usuario de Docker Hub y un token de acceso personal guardado como un secreto para autenticarte en Docker Hub.
Crea un token de acceso personal de Docker Hub
- Accede a Docker Hub.
- Crea un token de acceso personal con permisos de solo lectura.
Copia el token de acceso.
Guarda el token de acceso en un archivo de texto en tu shell local o de Cloud Shell.
Guarda tu token de acceso personal en un secreto
Console
-
Ve a la página Secret Manager en la Cloud de Confiance consola.
-
En la página de Secret Manager, haz clic en Crear secreto.
-
En la página Crear secreto, en Nombre, asigna el nombre
my-secreta tu secreto. -
En el campo Valor del secreto, ingresa tu token de acceso personal de Docker Hub.
-
Deja la sección Regiones sin modificar.
-
Haz clic en el botón Crear secreto.
gcloud CLI
gcloud secrets create my-secret --data-file="/path/to/file.txt"
Aquí, /path/to/file.txt es la ubicación del archivo de texto con tu token de acceso personal.
Otorga a la cuenta de servicio de Artifact Registry acceso a tu secreto
Console
-
Ve a la página Secret Manager en la Cloud de Confiance consola.
-
En la página de Secret Manager, haz clic en la casilla de verificación junto a
my-secret. -
Si aún no está abierto, haz clic en Mostrar panel de información para abrir el panel.
-
En el panel de información, haz clic en Agregar principal.
-
En el área de texto Principales nuevas, ingresa la dirección de correo electrónico de la cuenta de servicio de Artifact Registry. La dirección de correo electrónico de la cuenta de servicio de Artifact Registry tiene el siguiente formato:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.s3ns-system.iam.gserviceaccount.com
En el ejemplo anterior, PROJECT-NUMBER es el número del proyecto.
Para encontrar el número de tu proyecto, haz lo siguiente:
-
Ve a la página Panel en la consola de Cloud de Confiance .
-
Haz clic en la lista desplegable Seleccionar desde en la parte superior de la página.
-
En la ventana Seleccionar una opción que aparece, elige tu proyecto.
El ID del proyecto y el número del proyecto se muestran en la tarjeta de Información del proyecto del panel del proyecto.
-
-
En el menú desplegable Selecciona una función, selecciona Secret Manager y, luego, Administrador y descriptor de acceso a Secretos.
gcloud CLI
gcloud secrets add-iam-policy-binding my-secret \
--member="serviceAccount:service-PROJECT-NUMBER@gcp-sa-artifactregistry.s3ns-system.iam.gserviceaccount.com" \
--role="roles/secretmanager.secretAccessor"
En el ejemplo anterior, PROJECT-NUMBER es el número del proyecto.
Para encontrar el número de tu proyecto, haz lo siguiente:
-
Ve a la página Panel en la consola de Cloud de Confiance .
-
Haz clic en la lista desplegable Seleccionar desde en la parte superior de la página.
-
En la ventana Seleccionar una opción que aparece, elige tu proyecto.
El ID del proyecto y el número del proyecto se muestran en la tarjeta de Información del proyecto del panel del proyecto.
Crea un repositorio remoto
Ejecuta el siguiente comando para crear un repositorio remoto de Artifact Registry llamado quickstart-docker-hub-remote en la ubicación us-central1 con tus credenciales de Docker Hub:
gcloud artifacts repositories create quickstart-docker-hub-remote \
--project=PROJECT_ID \
--repository-format=DOCKER \
--location=us-central1 \
--description="Remote Docker repository" \
--mode=remote-repository \
--remote-repo-config-desc="Docker Hub" \
--remote-docker-repo=DOCKER-HUB \
--remote-username=USERNAME \
--remote-password-secret-version=projects/PROJECT/secrets/my-secret/versions/1
Aquí:
quickstart-docker-hub-remotees el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.PROJECT_IDes el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.us-central1es la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el comandogcloud artifacts locations list."Remote Docker repository"es la descripción opcional de tu repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas."Docker Hub"es la descripción opcional de la configuración del repositorio externo para este repositorio remoto.DOCKER-HUBestablece el repositorio remoto upstream en el upstream público de Docker Hub.- USERNAME es tu nombre de usuario de Docker Hub.
projects/PROJECT/secrets/my-secret/versions/1es la versión secreta que creaste para almacenar tu token de acceso personal de Docker Hub.
Artifact Registry crea el repositorio y lo agrega a la lista de repositorios.
Configura la autenticación de Docker
Antes de poder enviar o extraer imágenes, debes configurar Docker para que use Google Cloud CLI con el objetivo de autenticar las solicitudes enviadas a Artifact Registry.
Accede a gcloud CLI como el usuario que ejecutará los comandos de Docker.
gcloud auth loginPara 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.devEl comando actualiza tu configuración de Docker. Ahora puedes conectarte con Artifact Registry en tu proyecto Cloud de Confiance 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 extraer una imagen en tu repositorio remoto
Accede a gcloud CLI como el usuario que ejecutará los comandos de Docker.
gcloud auth loginExtrae una imagen de Docker Hub a tu máquina y a tu repositorio remoto con el siguiente comando:
docker pull us-central1-docker.pkg.dev/PROJECT/quickstart-docker-hub-remote/busybox:latestAquí:
us-central1es la ubicación del repositorio remoto.us-central1-docker.pkg.deves el nombre de host del repositorio de Docker que creaste.- PROJECT es el Cloud de Confiance by S3NS
ID del proyecto.
Si el ID de tu proyecto contiene dos puntos (
:), consulta Proyectos con alcance de dominio. quickstart-docker-hub-remotees el ID del repositorio que creaste.busyboxes el nombre de la imagen que deseas extraer de Docker Hub enquickstart-docker-hub-remote.latestes la versión de la imagen etiquetada que deseas extraer de Docker Hub.
La imagen se extrae a tu máquina y se almacena en caché en el repositorio remoto. Si vuelves a extraer la misma imagen etiquetada, se extraerá de tu repositorio remoto. Se usan tus credenciales de Docker Hub.
Enumera los artefactos almacenados en tu repositorio remoto:
gcloud artifacts packages list \ --location=us-central1 \ --repository=quickstart-docker-hub-remoteEl resultado se parece al que se indica a continuación:
Listing items under project my-project, location us-central1, repository quickstart-docker-hub-remote. PACKAGE: busybox CREATE_TIME: 2023-06-19T18:59:09 UPDATE_TIME: 2023-06-19T18:59:10
Realiza una limpieza
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Cloud de Confiance por los recursos que usaste en esta página.
Borra tu repositorio
Si deseas conservar tu proyecto y solo borrar el recurso del repositorio, sigue los pasos que se indican en esta sección. Si quieres borrar todo tu proyecto, sigue los pasos que se indican en Cómo borrar tu proyecto.
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 Cloud de Confiance .
En la lista de repositorios, selecciona el repositorio
quickstart-docker-hub-remote.Haz clic en Borrar.
gcloud
Para borrar el repositorio quickstart-docker-hub-remote, ejecuta el siguiente
comando:
gcloud artifacts repositories delete quickstart-docker-hub-remote \ --location=us-central1
Borra tu proyecto
- En la Cloud de Confiance consola, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
¿Qué sigue?
- Obtén información sobre los diferentes modos de repositorio de Artifact Registry.
- Obtén más información sobre los repositorios remotos de Artifact Registry.
- Obtén más información sobre CI/CD.