https://blog.csdn.net/kongxx/article/details/97965609

官网 介绍: https://sylabs.io/guides/3.7/user-guide/introduction.html

下载已存在镜像

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

  1. 查询镜像
  2. $ singularity search ubuntu
  3. 获取预编译镜像 (会在当前目录下下载 ubuntu_.sif 文件)
  4. $ singularity pull ubuntu
  5. $ singularity pull docker://ubuntu
  6. Singularity Hub build 镜像
  7. $ singularity -d build lolcow.simg shub://GodloveD/lolcow
  8. Docker Hub build 镜像
  9. $ singularity -d build lolcow.simg docker://godlovedc/lolcow
  10. $ singularity -d build centos.simg docker://centos
  11. $ singularity -d build ubuntu.simg docker://ubuntu

交互模式运行

  1. $ singularity shell ubuntu.simg
  2. Singularity: Invoking an interactive shell within container...
  3. Singularity ubuntu.simg:~> pwd
  4. /home/admin
  5. Singularity ubuntu.simg:~> id
  6. uid=1000(admin) gid=1000(admin) groups=1000(admin),10(wheel)

执行一个命令并退出

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

运行一个容器

  1. $ singularity run ubuntu.simg
  2. admin@bdmaster:~$ pwd
  3. /home/admin
  4. admin@bdmaster:~$ id
  5. 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
1
2

绑定目录

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

$ singularity shell -B /apps:/apps ubuntu.simg
————————————————
版权声明:本文为CSDN博主「kongxx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kongxx/article/details/97965609

  1. singularity exec -B /home/daiyi1/trt --nv --writable-tmpfs /home/daiyi1/tensorflow2.image /bin/sh
  2. # -B 绑定dir
  3. # --nv 使用 gpu
  4. # --writable-tmpfs 内部可写