Singularity使用

218 阅读1分钟

基本命令:

  • 帮助命令

    • singularity --help 显示帮助信息
    • singularity help <command> 查看具体命令的帮助
  • 容器管理命令

    • singularity build <image-name> 构建镜像
    • singularity pull <image-name> 从Singularity Hub或Docker Hub拉取镜像
    • singularity inspect <image-name> 查看镜像元数据

容器使用:

  • shell:启动容器的交互式 shell
    singularity shell <image-name>
  • exec:在容器内执行指定命令
    singularity exec <image-name> <command>
  • run:启动镜像中的默认运行命令
    singularity run <image-name>

镜像格式:

  • 默认格式.simg (SquashFS),不允许修改
  • 可写格式--writableSandbox 目录,允许修改镜像中的内容

从头构建镜像:

  • singularity build --sandbox <dir-name> <source> 用于构建一个可写的目录镜像
  • singularity build <image-name>.simg <source> 用于构建不可修改的 .simg 格式镜像

格式转换:

  • singularity build <new-image>.simg <sandbox-dir> 用于将 sandbox 转换为 .simg 格式。

使用 Singularity Hub/Docker Hub:

  • singularity pull shub://<container-name> 从 Singularity Hub 拉取镜像
  • singularity pull docker://<container-name> 从 Docker Hub 拉取镜像

Singularity 配置文件 (Singularity Recipes):

类似 Dockerfile,可以通过指定构建步骤创建镜像。包含以下部分:

  • %runscript:容器启动时执行的命令
  • %files:复制文件到容器
  • %environment:定义环境变量
  • %post:构建后的安装步骤

常用格式:

  • SquashFS (.simg): 默认的、不可写的格式
  • Sandbox:可读写的目录,修改后会丢失,除非加上 --writable
  • Writable Image (.img): 类似于 Sandbox,但作为 .img 格式保存