Envía imágenes a Harbor para mejorar la seguridad con el control de acceso basado en roles, el análisis de vulnerabilidades automatizado y la administración simplificada de imágenes para tus aplicaciones en contenedores. Para enviar una imagen local a una instancia de Harbor, etiquétala con el nombre del repositorio y, luego, envíala.
Antes de comenzar
Para enviar una imagen, debes configurar tu entorno con los recursos y permisos necesarios, incluido un proyecto de Harbor existente. Para obtener más información, consulta Crea proyectos de Harbor.
Roles de IAM obligatorios
Para enviar imágenes a instancias del registro de Harbor, comunícate con el administrador de IAM del proyecto y solicita el siguiente rol:
- Visualizador de instancias de Harbor (
harbor-instance-viewer): Obtén, enumera y observa instancias de Harbor en el espacio de nombres del proyecto. Este rol incluye los permisos necesarios para ver los detalles de las instancias existentes de Harbor, de modo que puedas recuperar las URLs del registro necesarias para enviar imágenes.
Roles de RBAC de Harbor requeridos
A diferencia de los roles de IAM de GDC, la inserción de imágenes requiere permisos específicos dentro del sistema interno de control de acceso basado en roles (RBAC) de Harbor. Solicita los permisos necesarios a tu administrador. Aplica el acceso de privilegio mínimo solicitando solo los roles necesarios para tus tareas específicas.
- Desarrollador: Se requiere para enviar imágenes a un repositorio de Harbor. Para obtener más información sobre todos los roles disponibles, consulta la documentación de Harbor sobre los permisos de usuario por rol: https://goharbor.io/docs/2.12.0/administration/managing-users/user-permissions-by-role/.
Etiqueta la imagen local
Sigue estos pasos para etiquetar una imagen local con el nombre del repositorio:
- Debes autenticarte en la instancia de Harbor. Para obtener más información, consulta Configura la autenticación de Docker en instancias del registro de Harbor.
Establece el nombre de la imagen. El formato de un nombre completo de imagen es el siguiente:
INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGEReemplaza lo siguiente:
INSTANCE_URL: Es la URL de la instancia de Harbor. Por ejemplo,harbor-1.org-1.zone1.google.gdc.test. Obtén la URL de la instancia de Harbor con la consola de GDC o la CLI de gdcloud.HARBOR_PROJECT_NAME: Es el nombre del proyecto de Harbor. Por ejemplo:my-project..IMAGE_NAME: Es el nombre de la imagen. Por ejemplo,nginx.
Un ejemplo del nombre completo de la imagen podría verse de la siguiente manera:
harbor-1.org-1.zone1.google.gdc.test/my-project/nginxEtiqueta la imagen local con el nombre del repositorio:
docker tag SOURCE-IMAGE INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE:TAG
Reemplaza lo siguiente:
SOURCE-IMAGE: Es el nombre o ID de la imagen local. Por ejemplo,nginxTAG: Es el nombre de la etiqueta. Por ejemplo,stagingSi no especificas una etiqueta, Docker aplica la etiqueta más reciente de forma predeterminada.
Envía la imagen etiquetada a una instancia del registro de Harbor
Después de etiquetar la imagen, envíala a la instancia del registro de Harbor:
- Asegúrate de estar autenticado en la instancia de Harbor.
- Envía la imagen con etiquetas mediante el siguiente comando:
docker push
INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE:TAG
Cuando envías una imagen, se almacena en la instancia y el proyecto de Harbor especificados.
Después de enviar tu imagen, ve a la IU de la instancia de Harbor para verla.