Primeros pasos con contenedores
🔽 1. Descargar imágenes base
Apptainer puede descargar imágenes desde Docker Hub, lo que permite aprovechar miles de imágenes preconstruidas de sistemas operativos y herramientas.
📥 Comando básico
apptainer pull docker://ubuntu
Este comando descarga una imagen de Ubuntu desde Docker y la convierte en un archivo .sif
(Singularity Image Format), por ejemplo: ubuntu_latest.sif
.
🏷️ Descargar versiones específicas
Puedes especificar una versión del sistema usando una etiqueta (:versión
). Por ejemplo, para CentOS 7:
apptainer pull docker://centos:7
Esto descargará y convertirá la imagen de CentOS 7 a un archivo .sif
, que puedes ejecutar o convertir en sandbox.
🧱 2. ¿Qué es un sandbox?
Un sandbox en Apptainer es una forma de contenedor que se guarda como un directorio editable en lugar de un archivo .sif
.
Permite entrar al contenedor y modificarlo: instalar software, cambiar configuraciones, copiar archivos, etc.
Es ideal para el desarrollo interactivo de contenedores antes de “empacarlos” como imágenes finales
.sif
.Internamente, contiene el árbol de directorios del sistema operativo base (como si fuera una instalación Linux real).
🛠 3. Crear un contenedor en modo sandbox
El modo sandbox te permite trabajar de forma editable con el contenedor, como si fuera una carpeta normal del sistema de archivos.
🔧 Comando para crear sandbox
apptainer build --sandbox NOMBRE_DEL_DIRECTORIO IMAGEN_BASE.sif
📌 Ejemplo
apptainer build --sandbox NBODY ubuntu_latest.sif
Esto crea un directorio llamado NBODY/
con un sistema de archivos completo basado en Ubuntu el cual puedes modificar.
💻 4. Explorar el contenedor de forma interactiva
Puedes acceder al interior del contenedor sandbox usando una shell interactiva, lo que te permitirá navegar, instalar software y configurar el entorno.
🚪 Entrar al contenedor
apptainer shell NBODY/
Una vez dentro, verás el prompt de Apptainer:
Apptainer>
Puedes ejecutar comandos como si estuvieras en un sistema Linux normal.
🔚 Salir del contenedor
Para salir, simplemente escribe:
exit