Compartir comentarios
Las respuestas se generan en base a la documentación.

Artefactos de software en Docker Hub

Puedes usar Docker Hub para almacenar cualquier tipo de artefacto de software, no solo imágenes de contenedores. Un artefacto de software es cualquier elemento producido durante el proceso de desarrollo de software que contribuye a la creación, el mantenimiento o la comprensión del software. Docker Hub admite artefactos OCI al aprovechar la propiedad config en el manifiesto de la imagen.

¿Qué son los artefactos OCI?

Los artefactos OCI son cualquier archivo arbitrario relacionado con una aplicación de software. Algunos ejemplos incluyen:

  • Helm charts
  • Lista de materiales de software (SBOM)
  • Firmas digitales
  • Datos de procedencia
  • Atestaciones
  • Informes de vulnerabilidades

El soporte de artefactos OCI en Docker Hub significa que puedes usar un solo repositorio para almacenar y distribuir tanto imágenes de contenedores como otros activos.

Un caso de uso común para los artefactos OCI son los Helm charts. Los Helm charts son un formato de empaquetado que define un despliegue de Kubernetes para una aplicación. Dado que Kubernetes es un entorno de ejecución popular para contenedores, tiene sentido alojar las imágenes de la aplicación y las plantillas de despliegue en un solo lugar.

Usar artefactos OCI con Docker Hub

La gestión de artefactos OCI en Docker Hub se realiza de manera similar a como lo harías con las imágenes de contenedores.

La subida (push) y descarga (pull) de artefactos OCI hacia y desde un registro se realiza mediante un cliente de registro. La CLI de ORAS es una herramienta de línea de comandos que te deja gestionar artefactos OCI en un registro. Si utilizas Helm charts, la CLI de Helm proporciona funcionalidad integrada para subir y descargar charts hacia y desde un registro.

Los clientes de registro realizan solicitudes HTTP a la API del registro de Docker Hub. La API del registro cumple con un protocolo estándar definido en la especificación de distribución OCI.

Ejemplos

Esta sección muestra algunos ejemplos sobre el uso de artefactos OCI con Docker Hub.

Subir un Helm chart

El siguiente procedimiento muestra cómo subir un Helm chart como un artefacto OCI a Docker Hub.

Requisitos previos:

  • Versión de Helm 3.0.0 o posterior

Pasos:

  1. Crea un nuevo Helm chart:

    $ helm create demo
    

    Este comando genera una plantilla base de chart.

  2. Empaqueta el Helm chart en un archivo tarball.

    $ helm package demo
    Successfully packaged chart and saved it to: demo-0.1.0.tgz
    
  3. Inicia sesión en Docker Hub con Helm, utilizando tus credenciales de Docker.

    $ helm registry login registry-1.docker.io -u <YOUR_DOCKER_USERNAME>
    
  4. Sube el chart a un repositorio de Docker Hub.

    $ helm push demo-0.1.0.tgz oci://registry-1.docker.io/<YOUR_DOCKER_USERNAME>
    

    Esto sube el archivo tarball del Helm chart a un repositorio demo en el espacio de nombres <YOUR_DOCKER_USERNAME>. Ejecutar este comando crea un repositorio <YOUR_DOCKER_USERNAME>/demo si aún no existe uno.

  5. Ve a la página del repositorio en Docker Hub. La sección Tags de la página muestra la etiqueta del Helm chart.

    List of repository tags
  6. Selecciona el nombre de la etiqueta para ir a la página de esa etiqueta.

    La página enumera algunos comandos útiles para trabajar con Helm charts.

    Tag page of a Helm chart artifact

Subir un volumen

El siguiente procedimiento muestra cómo subir un volumen de contenedor como un artefacto OCI a Docker Hub.

Requisitos previos:

  • Versión de CLI de ORAS 0.15 o posterior

Pasos:

  1. Crea un archivo ficticio para usarlo como contenido del volumen.

    $ touch myvolume.txt
    
  2. Inicia sesión en Docker Hub utilizando la CLI de ORAS.

    $ oras login -u <YOUR_DOCKER_USERNAME> registry-1.docker.io
    
  3. Sube el archivo a Docker Hub.

    $ oras push registry-1.docker.io/<YOUR_DOCKER_USERNAME>/demo:0.0.1 \
      --artifact-type=application/vnd.docker.volume.v1+tar.gz \
      myvolume.txt:text/plain
    

    Esto sube el volumen a un repositorio demo en el espacio de nombres <YOUR_DOCKER_USERNAME>. La opción --artifact-type especifica un tipo de medio especial que hace que Docker Hub reconozca el artefacto como un volumen de contenedor.

  4. Ve a la página del repositorio en Docker Hub. La sección Tags de esa página muestra la etiqueta del volumen.

    Repository page showing a volume in the tag list

Subir un archivo de artefacto genérico

El siguiente procedimiento muestra cómo subir un artefacto OCI genérico a Docker Hub.

Requisitos previos:

  • Versión de CLI de ORAS 0.15 o posterior

Pasos:

  1. Crea tu archivo de artefacto.

    $ touch myartifact.txt
    
  2. Inicia sesión en Docker Hub utilizando la CLI de ORAS.

    $ oras login -u <YOUR_DOCKER_USERNAME> registry-1.docker.io
    
  3. Sube el archivo a Docker Hub.

    $ oras push registry-1.docker.io/<YOUR_DOCKER_USERNAME>/demo:0.0.1 myartifact.txt:text/plain
    
  4. Ve a la página del repositorio en Docker Hub. La sección Tags de esa página muestra la etiqueta del artefacto.

    Repository page showing an artifact in the tag list