应用介绍
singularity 是与 docker 类似的容器工具。所谓容器指的是一个标准的软件单元,它打包代码及其所有依赖项,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境。
使用容器的优点包括:
容器简化了软件安装和管理;
可以在一台机器上构建映像并在另一台机器上运行它;
容器的版本控制和冻结使数据具有可重复性。
singularity 容器的优点包括:
不需要 sudo 权限即可运行(与 Docker 不同);
在多节点环境中与 HPC 资源管理器很好地互操作;
默认情况下,轻松利用集群或服务器上的 GPU、高速网络、并行文件系统;
能够将 Docker 镜像转换为 Singularity。
使用指南
平台安装有 3.5.0
版本和 3.8.7
版本
3.5.0
版本可执行文件在/usr/local/bin/
目录下,可以直接在命令行上输入使用,例如
singularity --version
singularity version 3.5.0
3.8.7
版本安装在/opt/app/singularity/
目录下,用绝对路径来调用可执行文件,例如
/opt/app/singularity/bin/singularity --version
singularity version 3.8.7
镜像格式
格式 创建命令 优势
sif singularity pull 压缩格式、只读
singularity build
sandbox singularity build --sandbox 可写,需要对镜像更新时使用
格式转换
功能 命令行
sif 转 sandbox singularity build --sandbox alpine alpine.sif
sandbox 转 sif singularity build alpine2.sif alpine
常用命令
命令 用法说明
singularity pull 用于从远程地址拉取镜像并保存为sif格式。
singularity build 可以从本地镜像仓库,或者远程镜像仓库创建得到本地镜像,也可以用于镜像格式转换
singularity shell 用于以交互方式进入镜像,如果镜像为sandbox格式加上-w参数可以对镜像进行修改
singularity exec 用于以非交互方式运行镜像中的命令
使用示例
1.下载镜像
Container Library:https://cloud.sylabs.io/library
Docker Hub:hub.docker.com
#官方库下载
singularity pull library://library/default/ubuntu:20.04
#Docker镜像转Singularity镜像
singularity pull docker://ubuntu:20.04
2.容器
#交互式运行
singularity shell ubuntu_20.04.sif bash
#Singularity> echo 'hello world'
#Singularity> id
#直接运行
singularity exec ubuntu_20.04.sif echo 'hello world'
#打包
singularity build blast.sif blast
参考链接
Singularity官网