学习
实践
活动
专区
工具
TVP
写文章

Singularity入门之运行容器

下载已存在镜像

和Docker类似,要运行 Singularity 也需要先获取镜像,Singularity 可以从Singularity Hub 或者 Docker Hub 来获取已存在的镜像。

Singularity Hub
singularity -d build lolcow.simg shub://GodloveD/lolcow

Docker Hub
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
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://www.jianshu.com/u/3948ad865017复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Singularity入门之运行图形应用

    要在 Singularity 中运行图形程序需要重新制作一个镜像,使其包含执行图形应用程序需要的环境和程序,这里还是通过 sandbox 的方式来制作一个可以运...

    kongxx
  • Singularity入门之安装

    Singularity 提供了几种安装方式,这里选择使用编译 rpm 包的方式来安装。

    kongxx
  • Singularity入门之资源限制

    在 Singularity 中如果需要限制容器的资源,也可以通过 Linux 的 cgroup 来实现。Singularity 对资源的限制是通过一个 .tom...

    kongxx
  • Singularity入门之持久化Overlay

    在 Singularity 中运行容器,当容器退出时,对容器做的修改均会丢失,那怎么保存对容器的修改呢?此时我们可以通过 Singularity 的 Overl...

    kongxx
  • Singularity入门之通过沙盒创建镜像

    在此镜像目录之上运行容器,这里需要使用 “--writable” 选项来使其可写。

    kongxx
  • Singularity入门之通过recipe文件创建镜像

    Singularity中也提供了类似Docker中通过Dockerfile来创建镜像的功能,我们可以把创建镜像的内容写到Singularity文件中,然后使用S...

    kongxx
  • Singularity入门之通过镜像定义文件创建镜像

    下面以 Redis 数据库为例,主要说说 %startscript 和 %runscript 的区别。

    kongxx
  • 如何在Singularity中运行NVIDIA GPU云容器以配置HPC开发环境(中文字幕)

    在共享系统上安装HPC应用程序需要系统管理员为上百个应用程序构建环境模块,这是一项复杂、维护难度大、耗时长的工作。此外,将应用程序升级到最新版本需要仔细更新环境...

    GPUS Lady
  • C++ STL容器之set容器快速入门

    使用vector需于代码头部添加#include<set>,并且随后加上一句:using namespace std;即可。

    可定
  • C++ STL容器之vector容器快速入门

    vector:长度可变数组,即“长度根据需要而自动改变的数组”。 使用vector需于代码头部添加#include<vector>,并且随后加上一句:usin...

    可定
  • C++ STL容器之string容器快速入门

    C语言中一般用字符数组char str[]存放字符串,但使用字符数组有时会显得操作麻烦。C++在STL中加入了string类型,对字符串常用的需求功能进行封装,...

    可定
  • C++ STL容器之map容器快速入门

    在定义一个浮点型数组时,其实是定义了一个int型到double型的映射。如array[0]=25.4就是将0映射到25.4。

    可定
  • Docker学习笔记之运行和管理容器

    容器是基于容器技术所建立和运行的轻量级应用运行环境,它是 Docker 封装和管理应用程序或微服务的“集装箱”。在 Docker 中,容器算是最核心的部分了,掌...

    Jetpropelledsnake21
  • C++ STL容器之pair快速入门

    使用pair需于代码头部添加#include,并且随后加上一句:using namespace std;即可。

    可定
  • Logstash 篇之入门与运行机制

    1、Logstash是一个数据收集引擎,相当于是ETL工具。截图来源慕课,尊重版本从你我做起。

    别先生
  • C++ STL容器之queue(队列)快速入门

    使用queue需于代码头部添加#include,并且随后加上一句:using namespace std;即可。

    可定
  • C++ STL容器之stack(栈)快速入门

    使用stack需于代码头部添加#include,并且随后加上一句:using namespace std;即可。

    可定
  • Singularity入门之乱七八糟

    Singularity 运行容器的时候默认会使用当前用户来运行容器,但是对于有些由于安全问题必须使用root来运行的容器,默认就是root了,对于这种情况,可以...

    kongxx

扫码关注腾讯云开发者

领取腾讯云代金券