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:
Crea un nuevo Helm chart:
$ helm create demoEste comando genera una plantilla base de chart.
Empaqueta el Helm chart en un archivo tarball.
$ helm package demo Successfully packaged chart and saved it to: demo-0.1.0.tgzInicia sesión en Docker Hub con Helm, utilizando tus credenciales de Docker.
$ helm registry login registry-1.docker.io -u <YOUR_DOCKER_USERNAME>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
demoen el espacio de nombres<YOUR_DOCKER_USERNAME>. Ejecutar este comando crea un repositorio<YOUR_DOCKER_USERNAME>/demosi aún no existe uno.Ve a la página del repositorio en Docker Hub. La sección Tags de la página muestra la etiqueta del Helm chart.

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.

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:
Crea un archivo ficticio para usarlo como contenido del volumen.
$ touch myvolume.txtInicia sesión en Docker Hub utilizando la CLI de ORAS.
$ oras login -u <YOUR_DOCKER_USERNAME> registry-1.docker.ioSube 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/plainEsto sube el volumen a un repositorio
demoen el espacio de nombres<YOUR_DOCKER_USERNAME>. La opción--artifact-typeespecifica un tipo de medio especial que hace que Docker Hub reconozca el artefacto como un volumen de contenedor.Ve a la página del repositorio en Docker Hub. La sección Tags de esa página muestra la etiqueta del volumen.

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:
Crea tu archivo de artefacto.
$ touch myartifact.txtInicia sesión en Docker Hub utilizando la CLI de ORAS.
$ oras login -u <YOUR_DOCKER_USERNAME> registry-1.docker.ioSube el archivo a Docker Hub.
$ oras push registry-1.docker.io/<YOUR_DOCKER_USERNAME>/demo:0.0.1 myartifact.txt:text/plainVe a la página del repositorio en Docker Hub. La sección Tags de esa página muestra la etiqueta del artefacto.
