Secciones

¿Qué es Skopeo?

Copiar URL

Es una herramienta para gestionar, analizar, firmar y transferir imágenes de contenedores y repositorios de imágenes en los sistemas Linux®, Windows y MacOS. Al igual que Podman y Buildah, Skopeo es un proyecto open source de la comunidad que no requiere la ejecución de daemons para los contenedores.

Skopeo le permite analizar las imágenes en un registro remoto sin necesidad de descargarla con todas sus capas, lo cual la convierte en una solución ligera y de estructura modular para trabajar con las imágenes de contenedores en diferentes formatos, como las de Docker y las que cumplen con los estándares de la Open Container Initiative (OCI).

Las imágenes de contenedores son archivos con código que pueden ejecutarse en un proceso aislado y constan de dos partes:

Archivo tar

La primera parte consiste en uno o más archivos tar (conjuntos de archivos) del sistema de archivos del contenedor. El directorio del sistema contiene todo el código y los archivos de configuración necesarios para ejecutar una aplicación.

Archivo JSON

La segunda parte es la de los archivos JSON, los cuales describen la aplicación, proporcionan la configuración del desarrollador para la ejecución del contenedor, transmiten los datos entre la aplicación y el servidor, y almacenan los metadatos sobre los componentes individuales de la imagen y la forma de referirse a ellos.

Los repositorios de contenedores son grupos de imágenes que representan diferentes versiones de una aplicación, y los registros de contenedores son servidores que brindan acceso a las imágenes y la posibilidad de cargar otras nuevas. 

Skopeo, que en griego significa "visión remota", fue la primera herramienta de contenedores que desarrollaron los ingenieros de Red Hat junto con la comunidad open source. Skopeo funciona con Podman y Buildah para gestionar los contenedores OCI. En pocas palabras, Podman se utiliza para ejecutar los contenedores; Buildah, para diseñarlos; y Skopeo, para transportarlos, entre otras tareas. Imagínese que estas herramientas son una especie de navaja suiza para el entorno de contenedores: Skopeo sería una cuchilla ágil y versátil.

Skopeo analiza las imágenes con el comando skopeo inspect. Antes de su lanzamiento, era necesario extraer las imágenes completas para analizarlas, incluso si solo se querían examinar algunos metadatos. El comando "inspect" de Skopeo le permite ver las propiedades de la imagen, como las capas y las etiquetas, así que no es necesario extraerla ni trasladarla al host. De esta manera, puede reunir información sobre un repositorio o una etiqueta sin ocupar espacio de almacenamiento. 

Skopeo también le permite sincronizar un repositorio externo con un registro interno para mejorar la seguridad de las implementaciones de red sin conexión (también conocidas como implementaciones aisladas), y eliminar imágenes de dichos repositorios. Además, brinda los datos de acceso y los certificados adecuados para la autenticación, en caso de que sea necesario para el repositorio.  

Skopeo sync permite realizar copias directas de un registro a otro para utilizarlas en línea, así como de un registro a un archivo y viceversa para preparar entornos desconectados. A diferencia de skopeo copy, que asume que la copia solicitada requiere una acción, skopeo sync permite volver a sincronizar los repositorios de gran tamaño con pocas modificaciones, de manera regular y más rápida. La operación sync se puede utilizar directamente en la línea de comandos, pero además es posible configurarla en un archivo config, lo cual permite sincronizar únicamente un subconjunto de etiquetas de un repositorio de gran tamaño.

Si al realizar la inspección se observa que es necesario copiar una imagen de contenedor desde una ubicación o un tipo de almacenamiento y pegarla en otro, puede hacerlo con el comando Skopeo copy. La herramienta le permite copiar imágenes de contenedores entre los registros como docker.io o quay.io y su registro interno de contenedores o varios mecanismos de almacenamiento en su sistema local. Las copias directas de un registro a otro de Skopeo son rápidas y conservan la forma inalterada y el resumen del manifiesto de la imagen, si el registro de destino lo permite. Para copiar las imágenes entre los registros, no es necesario utilizar el disco local ni disponer de espacio libre en él. También se puede utilizar Skopeo para trasladar elementos en el almacenamiento del motor de contenedores e incluso entre los directorios. Se emplea con frecuencia en los sistemas de CI/CD para mantener los registros de contenedores actualizados y conservar el almacenamiento en los servidores que los albergan.

Herramientas flexibles

Skopeo forma parte de un conjunto modular de herramientas para los contenedores que ofrece muchas ventajas. Puede resultar difícil implementar cambios importantes en una herramienta monolítica sin que los usuarios actuales se vean perjudicados. En cambio, las herramientas más pequeñas y especializadas, como Skopeo, Podman y Buildah, pueden evolucionar más rápidamente. La agrupación de varias herramientas permite que cada una se utilice para un solo propósito, y es posible agregar otras nuevas para incorporar funciones o probar ideas y arquitecturas que podrían ser incompatibles con las herramientas actuales. Esta modalidad también facilita la protección de las herramientas.

Al igual que Podman, cuyas funciones provienen, en parte, de la biblioteca libpod que permite compartir el código con otras herramientas, las funciones de Skopeo también se implementan en una biblioteca. Su biblioteca de contenedores e imágenes se comparte con otras herramientas de contenedores, como Podman, Buildah y CRI-O, y es compatible con la interfaz de línea de comandos (CLI) de Docker. 

Seguridad y accesibilidad

Las ventajas principales de la combinación de Podman, Skopeo y Buildah incluyen:

  • La gestión de los contenedores sin privilegios de superusuario. Es posible diseñar, ejecutar y gestionar los contenedores sin necesidad de contar con privilegios de administrador, lo cual hace que el entorno de contenedores sea más accesible y reduce los riesgos de seguridad.
  • La arquitectura sin daemons. Los daemons requieren acceso administrativo, lo cual hace innecesaria la verificación por parte de un administrador, para leer los archivos, instalar los programas, editar las aplicaciones y mucho más Por eso, los daemons son el blanco ideal de los piratas informáticos que buscan controlar los contenedores e infiltrarse en el sistema host. 
  • La integración directa con systemd. El uso de Podman y las herramientas de contenedores asociadas le permite crear archivos de unidades de systemd y ejecutar contenedores como servicios del sistema.

Kubernetes

Kubernetes es una plataforma open source para la organización de contenedores que automatiza muchos de los procesos manuales involucrados en la implementación, la gestión y el ajuste de las aplicaciones que se alojan allí. Si ejecuta un sistema CI/CD dentro de Kubernetes o utiliza Red Hat OpenShift® para diseñar las imágenes de contenedores, es posible que tenga que distribuirlas en distintos registros. Skopeo es la herramienta ideal para hacerlo.

Informática de alto rendimiento

Los usuarios que utilizan un sistema operativo más antiguo en el host se beneficiarían de la ejecución de Skopeo u otras herramientas para aprovechar las funciones y las actualizaciones más recientes. Una limitación común en los entornos informáticos de alto rendimiento (HPC) es que los usuarios que no tienen privilegios de superusuario no pueden instalar paquetes en el host. Dado que cada vez se generaliza más el uso de Podman en los entornos HPC, es más sencillo ejecutar los contenedores de Skopeo con esta herramienta para realizar tareas específicas, y no se necesita el acceso de superusuario. 

Red Hat Enterprise Linux simplifica el diseño de los contenedores, ya que reduce la cantidad de repositorios y aumenta las herramientas para los desarrolladores. Las herramientas como Podman, Buildah y Skopeo se incluyen en las suscripciones a Red Hat Enterprise Linux y constituyen una base sólida para satisfacer sus necesidades relacionadas con las imágenes y los contenedores. Además, Red Hat ofrece imágenes base a partir de las cuales puede crear las suyas. 

Ejecute, diseñe y comparta imágenes de contenedores con las herramientas de línea de comandos de Red Hat Enterprise Linux, la imagen base universal (UBI), el repositorio en Red Hat Quay y el repositorio complementario, para simplificar el desarrollo de los contenedores.

Artículos relacionados

ARTÍCULO

Diferencias entre los contenedores y las máquinas virtuales

Las máquinas virtuales (VM) y los contenedores de Linux son entornos informáticos empaquetados que combinan varios elementos de TI y los aíslan del resto del sistema.

ARTÍCULO

¿Qué es la organización de los contenedores?

La organización en contenedores automatiza la implementación, la gestión, la escalabilidad y la conexión en red de los contenedores.

ARTÍCULO

¿Qué es un contenedor de Linux?

Un contenedor de Linux es un conjunto de procesos separados del resto del sistema, los cuales pueden ejecutarse desde una imagen diferente que proporciona todos los archivos necesarios para que funcionen.