在集群中使用虚拟化技术

三、查询tag,和使用原生centos挂载使用北极星集群安装软件--singularity修改、打包和运行镜像

2022-12-05 14:13:17 admin 151

三、修改镜像并打包,将/appnews挂载到容器里,这里我们以运行/appsnew/usr/R/R-4.2.0/lib64/R为例

这种就可以把集群已经安装好的软件,打包到里面去,然后安转设置别的软件,比如intel编译器等,后面mpi、GPU会讲到

1、拉取

推荐使用北极星集群dockerserver

执行:

dockersearch centos

图片关键词

输入提示如箭头

在login06(比较快):

singularitybuild --sandbox R-4.2.0  docker://bjxdockerfast:5000/centos7.6_bjx:latest

其他登陆节点

singularitybuild --sandbox R-4.2.0  docker://bjxdocker:5000/centos7.6_bjx:latest

或者使用docker服务器自己的:

 singularitybuild  --sandbox R-4.2.0  docker://centos:7.6.1810

注意:

其中R-4.2.0为sandbox的文件夹

7.6.1810为版本的tag,需要去https://hub.docker.com/搜索自己想要的版本的tag

图片关键词

图片关键词

2、创建文件夹和加载文件

mkdir R-4.2.0/appsnew

vi R-4.2.0/environment

加入这行source /appsnew/source/R-4.2.0.sh

(也可以  echo 'source /appsnew/source/R-4.2.0.sh'>> R-4.2.0/environment

图片关键词

 同时创建其他文件夹

mkdir R-4.2.0/lustre1

mkdir R-4.2.0/lustre2

mkdir R-4.2.0/lustre3

mkdir R-4.2.0/gpfs1

mkdir R-4.2.0/gpfs2

注意,cn_nl,cn-short不挂载gpfs,cn-long不挂载lustre3,其他包括登陆节点都挂载


3、进入系统安装相关软件,以虚拟root的身份进入的,使用root安装依赖,您没有看错是root 可以用yum

singularityshell -B /appsnew:/appsnew,/apps  -w   R-4.2.0

注意:-B /appsnew:/appsnew ,B为挂载选项;第一个为系统的/appsnew ,第二个为镜像内部的/appsnew ,如果同名可以直接写-B /appsnew。 -w 为挂载为可写

如果需要挂载并行文件系统,运行命令如下:

singularityshell  -B /appsnew,/apps,/lustre1,/lustre2,/gpfs1,/lustre3  -w  R-4.2.0

如果需要挂载并行文件系统和系统库,运行命令如下:

singularityshell  -B /appsnew,/apps,/lustre1,/lustre2,/gpfs1,/lustre3,/usr,/lib64,/etc,/sys   -w  R-4.2.0


进入后运安装缺的包

Apptainer> yum install -y gcc gcc-c++ gcc-gfortran readline-devel bzip2-devel libXt-devel fonts-chinese tcl tcl-devel tclx tk tk-devel

Apptainer> yum install -y mesa-libGLU mesa-libGLU-devel libcurl libcurl-devel xz-devel.x86_64 pcre2-devel libicu wget  which perl libgfortran5

图片关键词

 安装完后,输入并执行exit退出系统


4、测试

singularityrun -B /appsnew,/apps  R-4.2.0 R

图片关键词

5、打包

singularitybuild  R-4.2.0.sif R-4.2.0

##打包的时候出现:"Can't add file 的时候

chmod -R +r  R-4.2.0 就可以,或者删除提示中没有用的文件

6、执行

singularityrun -B /appsnew:/appsnew    R-4.2.0.sif  R

注意:-B /appsnew:/appsnew ,B为挂载选项;第一个为系统的/appsnew ,第二个为镜像内部的/appsnew 

也可以 singularityrun   -B /appsnew,/apps  R-4.2.0.sif  R


首页
资源&收费
集群
成果
问答