IBM Cloud Docs
Añadir imágenes a su espacio de nombres en Container Registry

Añadir imágenes a su espacio de nombres en Container Registry

Puede almacenar y compartir de forma segura imágenes de Docker con otros usuarios añadiendo imágenes a su espacio de nombresUna serie de repositorios que almacenan imágenes en un registro. Un espacio de nombres se asocia a una cuenta de IBM Cloud, que puede incluir varios espacios de nombres. en IBM Cloud® Container Registry.

Cada imagen que desea añadir a su espacio de nombres debe existir en su sistema local en primer lugar. Puede descargar (extraer) una imagen de otro repositorio en su equipo local o crear su propia imagen a partir de un archivo DockerUn archivo de texto que contiene instrucciones para crear una imagen de Docker. mediante el comando Docker build. Para añadir una imagen al espacio de nombres, debe subir (enviar) la imagen local al espacio de nombres en IBM Cloud Container Registry.

No coloque información personal en las imágenes de contenedor, nombres de espacio de nombres, campos de descripción, o en cualesquiera datos de configuración de imágenes (por ejemplo, nombres de imágenes o etiquetas de imagen).

Extracción de imágenes de otro registro

Puede extraer (descargar) una imagen de cualquier fuente de registroServicio de almacenamiento y distribución que contiene imágenes públicas o privadas que se utilizan para crear contenedores. privada o pública a su ordenador y, a continuación, etiquetarla para su uso posterior en IBM Cloud Container Registry.

Extraiga una imagen de un registro privado o público a su ordenador.
Extracción de imágenes de otro registro

Antes de empezar, complete las siguientes tareas.

  1. Descargue la imagen, consulte Extraer una imagen en la documentación de guía de inicio.

    Si obtiene un mensaje unauthorized: authentication required o denied: requested access to the resource is denied, ejecute el mandato ibmcloud cr login.

Después de extraer una imagen y etiqueta del espacio de nombres, puede cargar (enviar) la imagen desde el sistema local al espacio de nombres.

Si despliega una carga de trabajo que extrae una imagen de Container Registry y sus pods fallan con un estado ImagePullBackOff, consulte ¿Por qué las imágenes no se pueden extraer del registro con ImagePullBackOff o errores de autorización? para obtener ayuda.

Envío por push de imágenes de Docker a su espacio de nombres

Puedes enviar (subir) una imagen desde tu ordenador a tu espacio de nombres en IBM Cloud Container Registry para almacenar tu imagen y compartirla con otros usuarios.

Envíe una imagen desde su ordenador a IBM Cloud Container Registry.
Envíe por push de imágenes de Docker a su espacio de nombres

Antes de empezar, complete las siguientes tareas.

IBM Cloud Container Registry da soporte a otros clientes, así como a Docker. Para iniciar sesión utilizando otros clientes, consulte Acceso interactivo a los espacios de nombres.

Para subir (enviar por push) una imagen, siga los siguientes pasos:

  1. Inicie sesión en la CLI ejecutando el mandato ibmcloud cr login.

    ibmcloud cr login
    

    Debe iniciar sesión si extrae una imagen de IBM Cloud Container Registry privado.

    Si tiene un problema al intentar iniciar sesión, consulte ¿Por qué no puedo iniciar sesión en Container Registry? para obtener ayuda.

  2. Para ver todos los espacios de nombres que están disponibles en su cuenta, ejecute el mandato ibmcloud cr namespace-list.

  3. Suba la imagen al espacio de nombres.

    Si obtiene el mensaje unauthorized: authentication required o el mensaje denied: requested access to the resource is denied, ejecute el mandato ibmcloud cr login.

Después de enviar la imagen a IBM Cloud Container Registry, puede realizar una de las tareas siguientes.

Copia de imágenes entre registros

Puede copiar imágenes entre registros extrayendo una imagen de un registro de una región y enviándola a un registro de otra región, de modo que pueda compartir la imagen con usuarios de ambas regiones.

Copia de imágenes entre registros.
Copia de imágenes entre registros

Antes de empezar, complete las siguientes tareas.

Para copiar una imagen entre dos registros, siga los siguientes pasos:

  1. Extraiga una imagen de un registro.
  2. Envíe por push la imagen a otro registro. Asegúrese de utilizar el nombre de dominio correcto para la nueva región que tiene como objetivo.

Después de copiar la imagen, puede realizar una de las siguientes tareas.

Creación de imágenes que hacen referencia a una imagen de origen

Cree una imagen con el mandato ibmcloud cr image-tag.

En la región en la que ha iniciado sesión, cree una imagen en IBM Cloud Container Registry que haga referencia a una imagen existente de la misma región. Esta acción está soportada para las imágenes de origen que se crean utilizando las versiones soportadas de Docker Engine, consulte Soporte para Docker.

Las imágenes nuevas que se crean mediante este mecanismo no retienen firmas. Si necesita que la imagen nueva esté firmada, no utilice este mecanismo.

Antes de empezar, complete las siguientes tareas.

  • Instale la CLI para trabajar con imágenes en el espacio de nombres.
  • Asegúrese de que tiene acceso a un espacio de nombres privado en IBM Cloud Container Registry que contiene una imagen de origen en la que desea hacer referencia a otra imagen.

Para crear una nueva a partir de una imagen de origen, siga estos pasos.

  1. Inicie sesión en la CLI ejecutando el mandato ibmcloud cr login.

    ibmcloud cr login
    
  2. Ejecute el mandato siguiente para añadir la nueva referencia, donde SOURCE_IMAGE es el nombre de la imagen de origen y TARGET_IMAGE es el nombre de la imagen de destino. Las imágenes de origen y de destino deben estar en la misma región. SOURCE_IMAGE debe tener el formato repository:tag o repository@digest y TARGET_IMAGE debe tener el formato repository:tag, por ejemplo, us.icr.io/namespace/image:latest.

    Para encontrar los nombres de sus imágenes, ejecute ibmcloud cr image-list. Combine el contenido de la columna Repositorio (repository) y la columna Etiqueta (tag) separados por dos puntos (:) para crear el nombre de imagen en el formato repository:tag. Para identificar la imagen por resumen, ejecute el mandato ibmcloud cr image-digests. Combine el contenido de la columna Repositorio (repository) y la columna Resumen (digest) separados por un símbolo en (@) para crear el nombre de imagen en el formato repository@digest. Si se agota el tiempo de espera del comando Listar imágenes, consulte ¿Por qué se agota el tiempo de espera al listar imágenes? para obtener ayuda.

    ibmcloud cr image-tag [SOURCE_IMAGE] [TARGET_IMAGE]
    
  3. Verifique que la nueva imagen se haya creado ejecutando el mandato siguiente, y compruebe que la imagen se muestre en la lista con el mismo resumen de imagen que la imagen de origen.

    ibmcloud cr image-list
    

Compilar imágenes de Docker para utilizarlas con su espacio de nombres

Puede crear una imagen Docker directamente en IBM Cloud o crear su propia imagen Docker en el sistema local y subirla (enviarla por push) al espacio de nombres de IBM Cloud Container Registry.

Antes de empezar, complete las siguientes tareas.

Una imagen de Docker es la base para todos los contenedores que cree. Una imagen se crea a partir de un Dockerfile, que es un archivo que contiene las instrucciones para crear la imagen. Un Dockerfile puede hacer referencia a artefactos de compilación en sus instrucciones que se almacenan por separado, como una aplicación, la configuración de la aplicación y sus dependencias.

Si desea aprovechar los recursos de cálculo de IBM Cloud y la conexión a Internet o Docker no está instalado en la estación de trabajo, cree la imagen directamente en IBM Cloud. Si durante la creación necesita acceder a los recursos que están en servidores detrás de su cortafuegos, cree la imagen localmente.

Para crear su propia imagen de Docker, siga estos pasos:

  1. Cree un directorio local donde desea almacenar el contexto de construcción. El contexto de construcción contiene el Dockerfile y artefactos de compilación relacionados, como por ejemplo el código de la app. Vaya a este directorio en una ventana de línea de mandatos.

  2. Cree un Dockerfile.

    1. Cree un Dockerfile en el directorio local.

      touch Dockerfile
      
    2. Utilice un editor de texto para abrir el Dockerfile. Como mínimo, debe añadir la imagen base para crear su imagen. Sustituya SOURCE_IMAGE y TAG por el repositorio de imágenes y el código que desee utilizar. Si utiliza una imagen de otro registro privado, defina la ruta completa a la imagen en IBM Cloud Container Registry.

      FROM SOURCE_IMAGE:TAG
      

      Por ejemplo, para crear un Dockerfile basado en la imagen pública IBM WebSphere Application Server Liberty (ibm/liberty), utilice el siguiente comando.

      FROM icr.io/ibm/liberty:latest
      LABEL description="This is my test Dockerfile"
      EXPOSE 9080
      

      Este ejemplo añade una etiqueta a los metadatos de imagen y expone el puerto 9080. Para obtener más instrucciones sobre Dockerfile que puede utilizar, consulte la referencia Dockerfile.

  3. Decida un nombre para su imagen. El nombre de la imagen debe tener el siguiente formato, donde REGION es la región, MY_NAMESPACE es la información de su espacio de nombres, REPO_NAME es el nombre de su repositorio y TAG es la versión que desea utilizar para su imagen:

    REGION.icr.io/MY_NAMESPACE/REPO_NAME:TAG
    

    Para encontrar el espacio de nombres, ejecute el mandato ibmcloud cr namespace-list.

  4. Anote la vía de acceso al directorio que contiene el Dockerfile. Si ejecuta los mandatos en los pasos siguientes mientras el directorio de trabajo se establece en el lugar donde se almacena el contexto de compilación, puede sustituir DIRECTORY por un punto (.).

  5. Cree y pruebe la imagen localmente antes de enviarla por push a IBM Cloud.

    1. Cree la imagen desde el archivo Dockerfile en el sistema local y etiquétela con el nombre de la imagen, donde IMAGE_NAME es el nombre de la imagen y DIRECTORY es la vía de acceso al directorio.

      docker build -t IMAGE_NAME DIRECTORY
      
    2. Opcional: Pruebe la imagen en su sistema local antes de enviarla por push a su espacio de nombres.

      docker run IMAGE_NAME
      

      Sustituya IMAGE_NAME por el nombre de la imagen.

    3. Después de crear la imagen y etiquetarla para el espacio de nombres, puede enviar por push la imagen a su espacio de nombres en IBM Cloud Container Registry.

Para utilizar Vulnerability Advisor para comprobar la seguridad de la imagen, consulte Gestión de la seguridad de imágenes con Vulnerability Advisor.

Envío de imágenes utilizando una clave de API

Cree un ID de servicio que utilice una clave APIUn código único que se utiliza para autenticar y autorizar las solicitudes de API. El código se pasa a una API para identificar la aplicación o el usuario que llama y para rastrear y controlar cómo se utiliza la API. para enviar imágenes a IBM Cloud Container Registry.

Complete los pasossiguientes:

  1. Cree un ID de servicio, consulte Creación y trabajo con ID de servicio.
  2. Cree una política que otorgue al ID de servicio permiso para acceder al registro, por ejemplo, los roles de Administrador y Gestor, consulte Gestión del acceso de IAM para Container Registry.
  3. Cree una clave de API, consulte Creación de una clave de API para un ID de servicio.
  4. Utilice la clave de API para iniciar sesión en el registro para que pueda enviar imágenes al registro, consulte Automatización del acceso a IBM Cloud Container Registry.
  5. Envíe las imágenes, consulte Envío de imágenes Docker al espacio de nombres.

Ahora puede utilizar clústeres para extraer las imágenes, consulte Creación de contenedores a partir de imágenes.

Eliminación de etiquetas de imágenes en el repositorio privado

Puede eliminar una etiqueta, o etiquetas, de una imagen en el repositorio de IBM Cloud privado, y dejar la imagen subyacente y cualquier otra etiqueta en su lugar utilizando el mandato ibmcloud cr image-untag.

Si existen varias etiquetas para el mismo resumen de imagen en un repositorio y desea eliminar la imagen subyacente y todas sus etiquetas, consulte Supresión de imágenes del repositorio de IBM Cloud privado.

Complete los siguientes pasos para eliminar una o varias etiquetas utilizando la CLI:

  1. Inicie sesión en IBM Cloud con el mandato ibmcloud login.

  2. Para eliminar una etiqueta, ejecute el mandato siguiente donde IMAGE es el nombre de la imagen que desea eliminar en el formato repository:tag. Si en el nombre de la imagen no se ha especificado una etiqueta, el mandato falla. Puede suprimir las etiquetas de varias imágenes enumerando cada ruta de registro de IBM Cloud privado en el mandato con un espacio entre cada ruta.

    ibmcloud cr image-untag IMAGE
    

    Para encontrar los nombres de sus imágenes, ejecute ibmcloud cr image-list. Combine el contenido de la columna Repositorio (repository) y la columna Etiqueta (tag) separados por dos puntos (:) para crear el nombre de imagen en el formato repository:tag.

  3. Compruebe que la etiqueta se ha eliminado ejecutando el mandato siguiente y compruebe también que la etiqueta no se muestra en la lista.

    ibmcloud cr image-list
    

    Si se agota el tiempo de espera del comando Listar imágenes, consulte ¿Por qué se agota el tiempo de espera al listar imágenes? para obtener ayuda.

Supresión de imágenes del repositorio privado

Puede suprimir imágenes no deseadas del repositorio de IBM Cloud privado utilizando la CLI o la consola de IBM Cloud.

Si desea suprimir un repositorio privado y sus imágenes asociadas, consulte Supresión de un repositorio privado y cualquier imagen asociada.

La supresión de una imagen que un despliegue existente utiliza puede provocar que un escalado, una replanificación, o ambas tareas, fallen.

Si desea restaurar una imagen suprimida, puede generar una lista del contenido de la papelera ejecutando el mandato ibmcloud cr trash-list y restaurar una imagen seleccionada ejecutando el mandato ibmcloud cr image-restore.

Cuando haya varias etiquetas para el mismo resumen de imagen dentro de un repositorio, el mandato ibmcloud cr image-rm elimina todas las imágenes subyacentes y todas sus etiquetas. Si la misma imagen existe en un repositorio o espacio de nombres diferente, la copia de la imagen no se elimina. Si desea eliminar una etiqueta de una imagen y dejar la imagen subyacente y cualquier otra etiqueta en su lugar, consulte el mandato Eliminación de etiquetas de imágenes en el repositorio privado.

Supresión de imágenes del repositorio privado en la CLI

Puede suprimir imágenes no deseadas y todas sus etiquetas del repositorio de IBM Cloud privado utilizando la CLI.

La supresión de una imagen que un despliegue existente utiliza puede provocar que un escalado, una replanificación, o ambas tareas, fallen.

Si desea restaurar una imagen suprimida, puede generar una lista del contenido de la papelera ejecutando el mandato ibmcloud cr trash-list y restaurar una imagen seleccionada ejecutando el mandato ibmcloud cr image-restore.

Complete los siguientes pasos para suprimir una imagen utilizando la CLI:

  1. Inicie sesión en IBM Cloud con el mandato ibmcloud login.

  2. Para suprimir una imagen, ejecute el mandato siguiente, donde IMAGE es el nombre de la imagen que desea eliminar en el formato repository@digest o repository:tag. Si no se especifica ninguna etiqueta en el nombre de la imagen, de forma predeterminada se suprime la imagen etiquetada como latest. Puede suprimir varias imágenes enumerando cada ruta del registro de IBM Cloud privado en el mandato con un espacio entre cada ruta.

    ibmcloud cr image-rm IMAGE
    

    Para encontrar los nombres de sus imágenes, ejecute ibmcloud cr image-list. Combine el contenido de la columna Repositorio (repository) y la columna Etiqueta (tag) separados por dos puntos (:) para crear el nombre de imagen en el formato repository:tag. Para identificar la imagen por resumen, ejecute el mandato ibmcloud cr image-digests. Combine el contenido de la columna Repositorio (repository) y la columna Resumen (digest) separados por un símbolo en (@) para crear el nombre de imagen en el formato repository@digest. Si se agota el tiempo de espera del comando Listar imágenes, consulte ¿Por qué se agota el tiempo de espera al listar imágenes? para obtener ayuda.

  3. Compruebe que la imagen se ha suprimido ejecutando el siguiente mandato y compruebe que la imagen no aparece en la lista.

    ibmcloud cr image-list
    

Supresión de imágenes del repositorio privado en la consola

Puede suprimir imágenes no deseadas y todas sus etiquetas del repositorio de imágenes de IBM Cloud privado utilizando la consola de IBM Cloud.

La supresión de una imagen que un despliegue existente utiliza puede provocar que un escalado, una replanificación, o ambas tareas, fallen.

Si desea restaurar una imagen suprimida, puede generar una lista del contenido de la papelera ejecutando el mandato ibmcloud cr trash-list y restaurar una imagen seleccionada ejecutando el mandato ibmcloud cr image-restore.

Para suprimir una imagen utilizando la consola de IBM Cloud, realice los pasos siguientes:

  1. Inicie sesión en la consola IBM Cloud https://cloud.ibm.com/login con su dirección IBMid.
  2. Si tiene varias cuentas en IBM Cloud, seleccione en el menú de cuentas la cuenta y la región que desea utilizar.
  3. Pulse el icono Menú de navegación y, a continuación, pulse Container Registry.
  4. Pulse Imágenes. Se visualiza una lista de sus imágenes.
  5. Marque el recuadro de selección de la fila que contiene la imagen que desea suprimir.
  6. Pulse Suprimir imagen.

Listado de imágenes en la papelera

Puede generar una lista de las imágenes suprimidas que se hallan en la papelera y ver cuándo caducan.

Para averiguar qué imágenes están en la papelera, puede utilizar el mandato ibmcloud cr trash-list. Las imágenes se almacenan en la papelera durante 30 días.

Para generar una lista de las imágenes en la papelera, lleve a cabo los pasos siguientes:

  1. Inicie sesión en IBM Cloud con el mandato ibmcloud login.

  2. Genere una lista de las imágenes en la papelera ejecutando el mandato siguiente:

    ibmcloud cr trash-list
    
  3. Liste sólo las imágenes de la papelera para el espacio de nombres en el que está interesado ejecutando el mandato siguiente, donde NAMESPACE es el espacio de nombres:

    ibmcloud cr trash-list --restrict NAMESPACE
    

Restauración de imágenes

Puede restaurar imágenes desde la papelera. Las imágenes suprimidas se almacenan en la papelera durante 30 días.

Puede restaurar una imagen desde la papelera ejecutando el mandato ibmcloud cr image-restore. Para averiguar qué imágenes se hallan en la papelera, ejecute el mandato ibmcloud cr trash-list.

Puede restaurar imágenes con el mandato ibmcloud cr image-restore. Puede utilizar las siguientes opciones:

Restauración de imágenes por resumen

Al restaurar una imagen por resumen, el resumen se copia de la papelera en el repositorio activo y se restauran todas las etiquetas para el resumen en el repositorio. El resumen sigue apareciendo en la papelera porque se restaura una copia.

Para restaurar una imagen por resumen desde la papelera, siga estos pasos:

  1. Inicie sesión en IBM Cloud con el mandato ibmcloud login.

  2. Genere una lista de las imágenes en la papelera ejecutando el mandato siguiente:

    ibmcloud cr trash-list
    

    Se visualiza una tabla que muestra los elementos de la papelera. La tabla muestra el resumen, los días hasta la caducidad y las etiquetas de ese resumen.

  3. Tome nota del resumen de la imagen que desea restaurar.

  4. Ejecute el mandato siguiente para restaurar la imagen en su repositorio. Donde DNS es el nombre de dominio, NAMESPACE es el espacio de nombres, REPO es el repositorio y DIGEST es el resumen de la imagen que desea restaurar.

    ibmcloud cr image-restore DNS/NAMESPACE/REPO@DIGEST
    

    Si no se restauran algunas etiquetas, consulte ¿Por qué no se restauran todas las etiquetas al restaurar por resumen? para obtener ayuda.

    En su repositorio activo, puede extraer una imagen por resumen. Si ejecuta el mandato ibmcloud cr image-digests, la imagen se muestra en la salida.

Restauración de imágenes por etiqueta

Cuando restaure una imagen por etiqueta, solamente esa etiqueta específica se desplaza de la papelera al repositorio activo.

Para restaurar una imagen por etiqueta desde la papelera, siga estos pasos:

  1. Inicie sesión en IBM Cloud con el mandato ibmcloud login.

  2. Genere una lista de las imágenes en la papelera ejecutando el mandato siguiente:

    ibmcloud cr trash-list
    

    Se visualiza una tabla que muestra los elementos de la papelera. La tabla muestra el resumen, los días hasta la caducidad y las etiquetas de ese resumen.

  3. Para la imagen que desea restaurar, anote el resumen hasta la arroba (@), pero sin incluirla. Esta sección del resumen es DNS/NAMESPACE/REPO, donde DNS es el nombre de dominio, NAMESPACE es el espacio de nombres y REPO es el repositorio.

  4. Para la imagen que desea restaurar, anote la etiqueta, TAG.

  5. Ejecute el mandato siguiente para restaurar la imagen en el repositorio, donde DNS/NAMESPACE/REPO es el nombre de la imagen que desea restaurar y TAG es el código.

    ibmcloud cr image-restore DNS/NAMESPACE/REPO:TAG
    

    En su repositorio activo, puede extraer una imagen por etiqueta.

    Si al restaurar una imagen aparece un error que indica que la imagen etiquetada existe, consulte ¿Por qué aparece un error al restaurar una imagen? para obtener ayuda.

    Si ejecuta el mandato ibmcloud cr trash-list, el resumen y otras etiquetas aparecerán en la salida, pero la etiqueta ya no se visualizará.

Supresión de un repositorio privado y sus imágenes asociadas

Puede suprimir repositorios privados que ya no son necesarios y cualquier imagen asociada, utilizando la consola de IBM Cloud.

Cuando se suprime un repositorio, se suprimen todas las imágenes de dicho repositorio. Esta acción no se puede deshacer.

Antes de empezar, debe hacer una copia de seguridad de las imágenes que desee conservar.

Para suprimir un repositorio privado utilizando la consola de IBM Cloud, realice los pasos siguientes:

  1. Inicie sesión en la consola IBM Cloud https://cloud.ibm.com/login con su dirección IBMid.

  2. Si tiene varias cuentas en IBM Cloud, seleccione en el menú de cuentas la cuenta y la región que desea utilizar.

  3. Pulse el icono Menú de navegación y, a continuación, pulse Container Registry.

  4. Pulse Repositorios. Se visualiza una lista de repositorios privados.

  5. Marque el recuadro de selección de la fila que contiene el repositorio privado que desea suprimir.

    Asegúrese de que se ha seleccionado el repositorio correcto porque esta acción no se puede deshacer.

  6. Pulse Suprimir repositorio.