14 puntos por xguru 2025-06-27 | 2 comentarios | Compartir por WhatsApp
  • Plataforma de contenedores de código abierto diseñada con enfoque en la simplicidad, velocidad y seguridad
    • Optimizada para entornos de HPC (computación de alto rendimiento) y sistemas compartidos
  • Ofrece un formato de imagen de contenedor inmutable (immutable) de archivo único, con soporte de cifrado y firma
  • Se enfoca en la usabilidad integrada más que en el aislamiento, por lo que en entornos de clúster/servidor permite aprovechar directamente GPU, redes de alta velocidad y sistemas de archivos paralelos
  • Puede traer contenedores desde registros OCI (Open Containers Initiative) y maximiza la compatibilidad con Docker
    • Permite hacer pull, run y build de la mayoría de los contenedores en Docker Hub sin cambios
  • Cambió de nombre desde Singularity y fue transferido como proyecto a Linux Foundation
  • Los contenedores de archivo único basados en SIF (Singularity Image Format) facilitan su traslado, despliegue y compartición
  • Aplica un modelo de seguridad seguro donde los permisos del usuario dentro y fuera del contenedor son los mismos, y por defecto no es posible elevar privilegios adicionales en el host
  • Licencia BSD

2 comentarios

 
galadbran 2025-06-27

Artículo de unregistry mencionado en los comentarios de Hacker News:
Unregistry – enviar docker push directamente al servidor sin registro | GeekNews

 
GN⁺ 2025-06-27
Opiniones de Hacker News
  • Nuestro equipo probó Apptainer en un clúster de cómputo para diseño/verificación de silicio, pero al final volvimos a los módulos tradicionales de TCL (migrando a Lua)

    • Tuvimos varios problemas.
      • Primero, los contenedores no pueden usarse entre sí. Por ejemplo, si herramientas como Make, GCC y Git están cada una en un Apptainer distinto, al entrar a Make no puedes ver GCC
      • Segundo, si hay artefactos que dependen del interior del contenedor, no funciona bien. Si compilas un programa con el Apptainer de GCC, el binario generado queda enlazado a bibliotecas dentro del Apptainer y no se puede ejecutar; también hubo problemas con headers de C
      • Tercero, el valor de PATH se desordena constantemente, así que se repite el problema de no poder ver rutas o herramientas necesarias fuera de Apptainer
      • En general, la idea era buena, pero en usabilidad real resultó tan engorrosa que al final fue mucho más fácil usar directamente un SO viejo (RHEL8)
    • Yo veo Apptainer/Singularity como algo parecido a Docker (solo que sin configuración completa de red). Estos problemas también pasan igual en los contenedores Docker tradicionales.
      • En mi flujo de trabajo de HPC, uso Apptainer como reemplazo directo de Docker, y para eso encaja bien
      • La mayor ventaja de Apptainer es que es un contenedor sin privilegios de root. Por eso no permite redes complejas, pero es mucho más seguro en entornos multi-tenant como HPC
    • Si tu mayor queja al usar apps en contenedores es que se comportan como contenedores, eso es la esencia misma de un contenedor
    • No deberías mezclar piezas de contenedores, igual que no mezclarías binarios de distintas distribuciones de Linux
      • Lo ideal es usar contenedores para desarrollo dentro de un solo entorno integrado. Como los contenedores son entornos aislados, cualquier cosa que compiles debe quedarse en su propio contenedor
      • Aun así, también es posible crear varios contenedores con la misma imagen base para asegurar compatibilidad de archivos (solo si incluyes todas las dependencias necesarias)
  • Me alegra que Apptainer esté recibiendo atención. En algunas situaciones es mejor que Docker, Podman y otros

    • Cuando hay que ejecutar varios trabajos dentro de un mismo contenedor (algo que no se recomienda con otras tecnologías de contenedores)
    • HPC (y algunos entornos universitarios)
    • Soporte para modelo de distribución en archivo único (aunque sin soporte para deltas)
    • Posibilidad de firmar cifradamente archivos SIF sin un servidor externo aparte
    • Soporte potente para GPU
  • Docker también permite distribución en archivo único con los comandos docker save y docker load.

    • No soporta deltas, pero hace poco se enlazó en HN una solución llamada "unregistry" que permite hacer algo parecido a "docker push" sin Docker Registry y además aplicar deltas
  • Tanto Apptainer como singularity ce se usan comúnmente en HPC. Ambos se separaron del viejo proyecto Singularity, aunque no son exactamente iguales

    • Nosotros usamos singularity en varias supercomputadoras (HPC), y algunos investigadores instalan Apptainer localmente
    • Hace poco encontramos un bug de zona horaria en código Python (matplotlib, xarray, etc.); en singularity ce había problemas, pero en Apptainer funcionó correctamente
    • El Apptainer nuevo tiene una base de código parecida, pero los arreglos de bugs se están incorporando más rápido. Por ejemplo, singularity causaba problemas porque sobrescribía la zona horaria del usuario con la del sistema
    • Enlace de referencia: issue #3686 de singularity
    • Apptainer no es un fork del viejo proyecto Singularity. Apptainer es el proyecto principal original; solo se le cambió el nombre tras una votación de la comunidad. Pasó a formar parte de la Linux Foundation
      • singularity ce es el caso en que Sylabs contrató a los desarrolladores originales e hizo un fork del proyecto
      • Referencia: community announcement
    • Aun así, se mantiene la compatibilidad de contenedores entre ambos, así que lo que se compila en Apptainer puede ejecutarse en Singularity (y viceversa)
  • Apptainer básicamente es Singularity. El artículo correspondiente está aquí

    • Si usas un sistema compartido en un clúster universitario o gubernamental, Apptainer siempre está, mientras que Podman/Docker casi nunca
    • En ese tipo de entornos, en vez de usar contenedores, puede ser más conveniente llevarse bien con el administrador del sistema y entender cómo opera ese clúster
    • Me pregunto por qué Docker/Podman se usan menos, y por qué sería mejor evitar contenedores. ¿Será por temas de rendimiento?
  • Flatpak quiere pasar de OSTree a algo basado en contenedores. Dicen que una gran ventaja es contar con tooling de contenedores bien mantenido. Pero me pregunto en qué se diferencia eso de Apptainer

    • Probablemente la diferencia es que Flatpak ofrece control fino del sandbox por aplicación, incluyendo granularidad de permisos mediante xdg-dbus, para que se use casi como si fuera nativo
      • No estoy seguro de si Apptainer aísla o separa todo a ese nivel
      • Si usas herramientas como containertoolbx, las diferencias entre enfoques de contenedores dejan de importar tanto
      • Sinceramente, hay mucho solapamiento de funciones entre herramientas, pero eso tampoco me parece malo
  • En mi entorno, el objetivo principal de usar Apptainer no tiene que ver con despliegue, aislamiento ni disponibilidad de software.

    • Nuestro clúster HPC tiene límites de cuota de inodos por usuario, y por eso es difícil instalar software con muchísimos archivos (por ejemplo, Anaconda)
    • Pero las imágenes de Apptainer son un solo archivo basado en squashfs, así que puedes tener varias sin preocuparte por la cuota de inodos
    • Instalar el mismo software de forma normal suele ser más fácil, pero la cuota se agota rapidísimo
  • Estoy de acuerdo con el comentario de Havoc. El mensaje es ambiguo: no queda claro si Apptainer es un sustituto de Flatpak para escritorio o si está pensado para servidores

    • Es para servidores. Pero la pregunta en sí es ambigua
      • Apptainer sirve para ejecutar aplicaciones CLI en contenedores inmutables y rootless
      • La herramienta más parecida es Fedora Toolbx
      • Su uso principal es la distribución y reutilización de herramientas de cómputo científico. Se usa sin privilegios root, no permite modificar el rootfs de cada contenedor y monta automáticamente el directorio de trabajo; además, tiene buen soporte para GPU (aunque eso no lo he probado personalmente)
      • Referencia: Fedora Toolbx
  • El nombre "Apptainer" suena incómodo de pronunciar y como si algo no estuviera del todo bien

  • Como desarrollador, quizá estés buscando una herramienta de contenedores para aislamiento

    • Yo hice una herramienta basada en Podman para aislar distintos proyectos de desarrollo. Si la necesitas para pruebas de seguridad o para usarla, puedes ver el código o la entrada del blog
    • Me pregunto por qué toolbox no era suficiente
      • A mí toolbox me parecía bien porque, al instalar entornos de desarrollo por proyecto, no hace falta administrar varios sistemas de archivos ocultos
  • En clústeres con SLURM y servidores sin privilegios de root, es muy útil

    • Yo también lo he usado en un clúster con SLURM
      • La documentación oficial está bien hecha y alcanza para empezar
      • Eso sí, si no tienes fakeroot ni sudo, era engorroso tener que compilar Apptainer localmente y luego transferirlo al servidor directamente