Singularity入门之运行容器

下载已存在镜像

和Docker类似,要运行 Singularity 也需要先获取镜像,Singularity 可以从Singularity Hub 或者 Docker Hub 来获取预编译的镜像,或者编译新镜像。

# 查询镜像
$ singularity search ubuntu

# 获取预编译镜像 (会在当前目录下下载 ubuntu_<tag>.sif 文件)
$ singularity pull ubuntu
$ singularity pull docker://ubuntu

# 从 Singularity Hub build 镜像
$ singularity -d build lolcow.simg shub://GodloveD/lolcow

# 从 Docker Hub build 镜像
$ singularity -d build lolcow.simg docker://godlovedc/lolcow
$ singularity -d build centos.simg docker://centos
$ singularity -d build ubuntu.simg docker://ubuntu

交互模式运行

$ singularity shell ubuntu.simg
Singularity: Invoking an interactive shell within container...

Singularity ubuntu.simg:~> pwd
/home/admin
Singularity ubuntu.simg:~> id
uid=1000(admin) gid=1000(admin) groups=1000(admin),10(wheel)

执行一个命令并退出

$ singularity exec ubuntu.simg bash -c  "pwd && id"
/home/admin
uid=1000(admin) gid=1000(admin) groups=1000(admin),10(wheel)

运行一个容器

$ singularity run ubuntu.simg
admin@bdmaster:~$ pwd
/home/admin
admin@bdmaster:~$ id
uid=1000(admin) gid=1000(admin) groups=1000(admin),10(wheel)

后台运行容器实例

启动实例

$ singularity instance start ubuntu.simg test1
$ singularity instance start ubuntu.simg test2

查看实例

$ singularity instance list
DAEMON NAME      PID      CONTAINER IMAGE
test1            14172    /home/admin/ubuntu.simg
test2            14239    /home/admin/ubuntu.simg

操作实例

可以通过 shell, exec, run 命令来连到容器中运行命令

使用 shell 命令连入容器

$ singularity shell instance://test1
Singularity ubuntu.simg:~> ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
admin      1     0  0 03:14 ?        00:00:00 singularity-instance: admin [test1]
admin      3     0  3 03:14 pts/0    00:00:00 /bin/bash --norc
admin      4     3  0 03:14 pts/0    00:00:00 ps -ef

使用 exec 执行命令

$ singularity exec instance://test1 ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
admin      1     0  0 03:14 ?        00:00:00 singularity-instance: admin [test1]
admin      6     0  0 03:15 pts/0    00:00:00 ps -ef

停止实例

$ singularity instance stop test1
$ singularity instance stop test1

绑定目录

在 Singularity 中也可以在 shell, run, instance.start 等命令中通过 “-B” 选项来实现 Docker 中 “-v” 选项提供挂载卷的功能,比如:

$ singularity shell -B /apps:/apps ubuntu.simg
国科大超算平台上的Singularity容器是一种用于软件打包和部署的工具。通过使用Singularity容器,用户可以在不同的操作系统环境中运行其软件,而无需担心与主机系统不兼容的问题。 在国科大超算平台上,使用Singularity容器可以提供以下好处: 首先,Singularity容器可以使软件的部署更加简便和灵活。用户只需将其软件及其相关依赖项打包进Singularity容器中,就可以在超算平台上运行,而无需额外的配置和安装。这种打包的方式可以大大简化软件部署流程,节省用户的时间和精力。 其次,Singularity容器具有良好的可移植性。一旦在国科大超算平台上成功使用Singularity容器运行软件,用户可以将该容器轻松地迁移至其他系统或平台中,而不会受限于特定的操作系统环境。这样,用户可以更加方便地分享和传播其软件,同时也能够在各种不同的计算环境中使用。 此外,Singularity容器还具有较好的安全性。由于Singularity容器是基于用户空间隔离技术实现的,因此容器之间的进程是相互隔离的,不会相互干扰或共享资源。这样可以有效地防止恶意软件或未经授权的访问,保护用户的数据和计算环境的安全。 总的来说,国科大超算平台中采用Singularity容器实践能够提供更加便捷、灵活、可移植和安全的软件运行环境,为用户的科学计算工作提供了有力的支持。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值