singularity使用简介

singularity使用

1. singularity简介

singularity与docker功能相似,但是相比与docker需要root权限,或者专门添加用户组,singularity在非root时也可使用,且轻量级,修改方便。singularity镜像有两种格式:sif格式可用于部署;sanbox格式是可写的文件系统,用于开发过程,方便根据需要修改其中的内容。两种格式之间相互转换,即开发完成后转换为sif。具体可参考官网。

2. singularity特性

  • 比如可在本地构建docker镜像,然后上传服务器使用singularity运行,从而避免使用root相关权限;
  • Singularity镜像 中的文件可以直接在当前系统操作;但是通过shell 启动容器后,容器内是只读的文件系统,如果要在容器内修改,需要root 权限,且指定 -writable;
  • 可直接在sandbox容器内创建环境,安装软件等;

3. 常用操作

(1) 搜索镜像,search

singularity search alp

(2)下载镜像,pull或build

singularity build ubuntu.sif library://ubuntu
singularity pull docker://sachet/polysolver:v4
  • 以library:// 开头的URI,表示是从Container Library构建
  • 以docker:// 开头的URI,表示是从Docker Hub构建
  • 以shub:// 开头的URI,表示是从Singularity Hub构建

(3)创建容器,build
build命令可以从一个现有容器创建一个新容器,意味着可以转换容器的格式,比如可以将修改过的sandbox(目录)转换为sif;也可以将sif转换为sandbox;

  singularity  build test.sif  test/

(4)运行,run或exec

singularity 可提供一个运行环境,在容器中配置好运行环境后,用于运行独立的软件。

singularity exec my_sing.img bash /pth/to/script.sh
singularity exec --writable ubuntu touch /foo,使用--writable 参数,可以在镜像目录中写入文件;

4. 常用问题

  • 默认下载的镜像存储在home下 .singularity,可以通过设置SINGULARITY_CACHEDIR 修改缓存目录;
  • build时的一些报错部分 FATAL: While performing build: while creating SIF: while creating container: writing data object for SIF file: copying data object file to SIF file: write /tmp/image-: no space left on device,可通过设置 SINGULARITY_TMPDIR 解决;
  • run运行时的一些报错也有可能是权限问题,需要仔细查看指示位置的权限;
  • 另有一些运行错误是由于singularity版本与系统不兼容,尝试更换镜像;
  • 挂载目录时,需要指定到最末端目录,否则会报错;或者设置
    enable underlay = yes
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Singularity是一个容器解决方案,用于在高性能计算环境中运行应用程序和工作负载。它类似于Docker,但专为科学计算和研究领域设计。 使用Singularity可以轻松地在不同的计算机上复制和部署应用程序,而无需担心环境依赖性和配置问题。以下是一些使用Singularity的常见步骤: 1. 安装Singularity:首先,您需要将Singularity安装在您的系统上。可以参考Singularity官方文档以了解适用于您操作系统的安装步骤。 2. 创建容器使用Singularity,您可以创建自定义的容器,其中包含您需要运行的应用程序和工作负载。您可以基于现有的Docker镜像创建Singularity容器,或者从头开始创建一个新的容器。 3. 构建容器使用Singularity命令行工具,您可以构建和配置容器。您可以指定所需的操作系统、软件包和环境变量等。您还可以通过定义Singularity文件(如.def文件)来描述容器的配置。 4. 运行容器:一旦容器构建完成,您可以使用singularity run命令来运行容器。您需要指定要运行的应用程序或命令,并可以传递参数和选项。 5. 共享容器:如果您想与其他用户共享容器,可以使用singularity build命令将容器打包为一个可执行的文件,并将其共享给其他用户。 总的来说,Singularity提供了一种简单而有效的方式来管理和运行科学计算和研究工作负载。您可以根据自己的需求定制容器,并轻松地在不同的计算机上复制和部署应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值