Singularity安装和使用

官方文档链接:http://singularity.lbl.gov/user-guide

一、基本介绍

Singularity使用户能够完全控制其操作系统环境。这意味着用户可以将主机上的操作系统“交换”给其他人。因此,如果主机系统运行RHEL6,但是您的应用程序在Ubuntu中运行,则可以创建一个Ubuntu映像,将应用程序安装到该映像中,将映像复制到另一个主机,并在该主机的本机Ubuntu环境中运行应用程序,总的来说Singularity类似于Docker。Singularity允许利用所在宿主机的资源。这包括HPC互连,资源管理器,文件系统,GPU和/或加速器等。 Singularity和Docker优缺点对比 输入图片说明

二、安装

Ubuntu:

sudo apt-get update && sudo apt-get install python dh-autoreconf build-essential

Centos:

sudo yum update && sudo yum groupinstall 'Development Tools'

# clone可以选择release版本进行安装
$ git clone https://github.com/singularityware/singularity.git
$ cd singularity
$ ./autogen.sh
$ ./configure --prefix=/usr/local --sysconfdir=/etc
$ make
$ sudo make install

三、创建镜像

$ singularity create container.img
Initializing Singularity image subsystem
Opening image file: container.img
Creating 768MiB image
Binding image to loop
Creating file system within image
Image is done: container.img

默认创建镜像大小是768M,也可以指定大小进行创建

$ singularity create --size 2048 container2.img
Initializing Singularity image subsystem
Opening image file: container2.img
Creating 2048MiB image
Binding image to loop
Creating file system within image
Image is done: container2.img

四、定制化镜像

创建TensorFlow gpu 版本定制镜像

  1. create a bootstrap new file

vim Singularity

BootStrap: docker
From: nvidia/cuda:8.0-cudnn5-devel-centos7

%post                                                                                                                                
# install other needed packages
yum clean all
yum -y update
yum -y install epel-release
yum -y install python-pip

# install tensorflow
pip install --upgrade pip
pip install tensorflow-gpu

2.create a empty image

$singularity create --size 10240 centos.img
Initializing Singularity image subsystem
Opening image file: centos.img
Creating 10240MiB image
Binding image to loop
Creating file system within image
Image is done: centos.img

3.customize image

$ sudo singularity  bootstrap centos.img Singularity 
Sanitizing environment
Building from bootstrap definition recipe
Adding base Singularity environment to container
Docker image path: index.docker.io/library/ubuntu:latest
Cache folder set to /root/.singularity/docker
[5/5] |===================================| 100.0% 
Exploding layer: sha256:b6f892c0043b37bd1834a4a1b7d68fe6421c6acbc7e7e63a4527e1d379f92c1b.tar.gz
Exploding layer: sha256:55010f332b047687e081a9639fac04918552c144bc2da4edb3422ce8efcc1fb1.tar.gz
Exploding layer: sha256:2955fb827c947b782af190a759805d229cfebc75978dba2d01b4a59e6a333845.tar.gz
Exploding layer: sha256:3deef3fcbd3072b45771bd0d192d4e5ff2b7310b99ea92bce062e01097953505.tar.gz
Exploding layer: sha256:cf9722e506aada1109f5c00a9ba542a81c9e109606c01c81f5991b1f93de7b66.tar.gz
Exploding layer: sha256:fe44851d529f465f9aa107b32351c8a0a722fc0619a2a7c22b058084fac068a4.tar.gz
Finalizing Singularity container

五、进入容器里面

$singularity shell -n centos.img 
WARNING: Library bind directory not present in container, update container
Singularity: Invoking an interactive shell within container...

Singularity.centos.img> df -h
Filesystem      Size  Used Avail Use% Mounted on
singularity     1.0M     0  1.0M   0% /

六、共享文件

/test 是宿主机目录,/yangyang是容器内部目录,容器内部目录不需要提前创建

$singularity shell -B /test:/yangyang centos.img 
Singularity: Invoking an interactive shell within container...

Singularity.centos.img> cd /yangyang
Singularity.centos.img> ls
Singularity.centos.img> 

转载于:https://my.oschina.net/zhangyangyang/blog/1186793

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值