Manual de uso

⌘K
  1. Inicio
  2. Documentos
  3. Manual de uso
  4. 6. Entorno Software
  5. Contenedores (Singularity/Apptainer)

Contenedores (Singularity/Apptainer)

Además del software incluido de base en el propio sistema operativo y los disponibles a través de Lmod, es posible hacer usos de contenedores para desplegar configuraciones necesarias para la ejecución de determinados programas con requisitos muy específicos.

Singularity/Apptainer

Apptainer (antes conocido como Singularity) es un software para la virtualización a nivel de sistema operativo, también conocido como containers.

 

Un container es una abstracción del software que permite sustituir el stack de espacio de usuario que se comunica con el kernel. Virtualmente, se puede utilizar un sistema operativo, junto a todo su conjunto de programas y bibliotecas, diferente al que está instalado en el sistema.

 

Apptainer, a diferencia de otros programas de gestión de contenedores como Docker, no necesita de daemons. Está diseñado para ser usado desde usuarios sin privilegios, en entornos HPC y hace hincapié en la seguridad.

Uso

En el siguiente enlace hay una introducción a Apptainer/Singularity:

https://hsf-training.github.io/hsf-training-singularity-webpage/

Comandos básicos

# Pull an exiting image from Singularity repo
apptainer pull shub://singularityhub/hello-world

# or from a docker repo
apptainer pull docker://godlovedc/lolcow

# Run a container
# Option A, run the (container image) file directly to perform its function
./hello-world_latest.sif
# Option B, use singluarity/apptainer to run
apptainer run hello-world_latest.sif

# Run a command from inside the container
apptainer exec <image> <command line>
apptainer exec hello-world_latest.sif cat /etc/os-release

# Bind/Mount host directories, e.g.,
apptainer exec -B /opt hello-world_latest.sif sh
Apptainer> ls /opt
# comparing to
apptainer exec hello-world_latest.sif sh
Apptainer> ls /opt

# Start a shell from the container image
apptainer shell hello-world_latest.sif

# Build an image from sandbox
# create a sandbox from an image
apptainer build –sandbox /tmp/debian docker://debian:latest
# make some changes to the sandbox, eg.
touch /data
# build a new image
apptainer build mydebian.sif /tmp/debian
# create a container from the new image and see the change from inside the container
apptainer exec mydebian.sif sh
Apptainer> ls /

# Daemonize it (run at the backend as a daemon)
apptainer instance start ./hello-world_latest.sif hello-world
apptainer instance list
apptainer instance stop hello-world

¿Cómo podemos ayudarte?