"""参考文档
https://apptainer.org/user-docs/master/build_a_container.html
""" # 通过文件构建容器,相当于docker的Dockerfile
## 创建一个Singularity文件
>>> vim Singularity
Bootstrap: docker
"""
其中Bootstrap可以是:
shub(images hosted on Singularity Hub).
docker(images hosted on Docker Hub).
localimage(images saved on your machine).
yum(yum based systemd such as Centos and Scientific Linux)等
"""
From: ubuntu:18.04
Stage: build %setup
"""
在构建过程中,该%setup部分中的命令首先在安装基本操作系统后在容器外的主机系统上执行,可以在该部分中使用$SINGULARITY_ROOTFS环境变量引用容器文件系统
"""
touch /file1
touch ${SINGULARITY_ROOTFS}/file2 %files
"""
允许您将文件复制到容器中,比使用该%setup部分更安全
"""
/file1
/file1 /opt %environment
"""
允许您定义将在运行时设置的环境变量
"""
export LISTEN_PORT=12345
export LC_ALL=C %post
"""
你可以使用git和wget等工具从互联网上下载文件,安装新的软件和库,编写配置文件,创建新的目录等。类似于dockerfile中的Run
"""
apt-get update && apt-get install -y netcat
NOW=`date`
echo "export NOW=\"${NOW}\"" >> $SINGULARITY_ENVIRONMENT %runscript
"""
容器运行时执行命令
"""
echo "Container was created $NOW"
echo "Arguments received: $*"
exec echo "$@" %startscript
"""
容器启动时运行的命令
"""
nc -lp $LISTEN_PORT %test
"""
在构建过程的最后运行,以使用您选择的方法验证容器
"""
grep -q NAME=\"Ubuntu\" /etc/os-release
if [ $? -eq 0 ]; then
echo "Container base is Ubuntu as expected."
else
echo "Container base is not Ubuntu."
exit 1
fi %labels
"""
用于将元数据添加到/.singularity.d/labels.json容器内的文件中。
"""
Author d@sylabs.io
Version v0.0.1 %help
"""
该部分中的任何文本%help都会被转录到容器中的元数据文件中。然后可以使用run-help命令显示此文本
"""
This is a demo container used to illustrate a def file that uses all
supported sections. # 构建镜像
>>> singularity build ubuntu-test.image Singularity # 运行容器
>>> singularity run ubuntu-test.image

Singularity容器的更多相关文章

  1. 在CentOS上安装Singularity高性能容器

    什么是singularity容器 Singularity是劳伦斯伯克利国家实验室专门为大规模.跨节点HPC和DL工作负载而开发的容器化技术.具备轻量级.快速部署.方便迁移等诸多优势,且支持从Docke ...

  2. 如何运行具有奇点的NGC深度学习容器

    如何运行具有奇点的NGC深度学习容器 How to Run NGC Deep Learning Containers with Singularity 高性能计算机和人工智能的融合使新的科学突破成为可 ...

  3. Manjaro Linux安装singularity-container

    技术背景 容器化技术在各种生产领域已经得到了广泛的应用,这得益于容器的轻量化(相比于虚拟机而言),安全性(隔离弱于虚拟机,但是权限控制得当的情况下也可以认为是安全隔离的)以及系统级虚拟化带来的高可用性 ...

  4. 用华为MindSpore进行分布式训练

    技术背景 分布式和并行计算,在计算机领域是非常重要的概念.对于一些行外人来说,总觉得这是一些很简单的工作,但是如果我们纵观计算机的硬件发展史,从CPU到GPU,再到TPU和华为的昇腾(NPU),乃至当 ...

  5. AI 企业多云存储架构实践 | 深势科技分享

    2020 年末,谷歌旗下 DeepMind 研发的 AI 程序 AlphaFold2 在国际蛋白质结构预测竞赛上取得惊人的准确度,使得" AI 预测蛋白质结构"这一领域受到了空前的 ...

  6. [SinGuLaRiTy] 组合数学题目复习

    [SinGuLaRiTy] Copyright (c) SinGuLaRiTy 2017.  All Rights Reserved. [CQBZOJ 2011] 计算系数 题目描述 给定一个多项式( ...

  7. [SinGuLaRiTy] 复习模板-搜索

    [SinGuLaRiTy-1043] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 桶排序 void bucketSort(int a[], ...

  8. 容器安全拾遗 - Rootless Container初探

    摘要: Docker和Kubernetes已经成为企业IT架构的基础设施,安全容器运行时越来越被关注.近期Docker 19.03中发布了一个重要的特性 “Rootless Container”,在提 ...

  9. Nvidia GPU热迁移-Singularity

    1 背景 在GPU虚拟化和池化的加持下,可以显著提高集群的GPU利用率,同时也可以较好地实现弹性伸缩.但有时会遇到需要GPU资源再分配的场景,此时亟需集群拥有GPU任务热迁移的能力.举个简单的例子,比 ...

  10. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

随机推荐

  1. [转帖]tar、gzip、zip、jar是什么,怎么查看?

    https://www.cnblogs.com/codelogs/p/16702759.html   原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 如果你是后 ...

  2. SPI在Java中的实现与应用 | 京东物流技术团队

    1 SPI的概念 API API在我们日常开发工作中是比较直观可以看到的,比如在 Spring 项目中,我们通常习惯在写 service 层代码前,添加一个接口层,对于 service 的调用一般也都 ...

  3. Android APP升级时解析程序包时出现问题

    一个新的测试机在自动下载升级安装更新版本APP时,报出"解析程序包时出现问题"错误.原因众说纷纭, 一番搜索,下面的回答比较全面: https://stackoverflow.co ...

  4. 根据pdf模板文件添加数据生成新的pdf与pdf添加读取二维码

    参考文档 :https://www.cnblogs.com/ibeisha/p/itextsharp-pdf.html 程序demo 地址:https://github.com/hudean/itex ...

  5. Linux 统计Web服务日志命令

    本人在Linux运维中收集的一些通用的统计,Apache/Nginx服务器日志的命令组合. Apache日志统计 # 列出当天访问次数最多的IP命令 [root@lyshark.cnblogs.com ...

  6. 使用Docker部署Tomcat

    目录 使用Docker部署Tomcat 1. 获取镜像 2. 第一次启动tomcat 3.带参数启动 4.查看tomcat日志 5.时区问题 使用Docker部署Tomcat 1. 获取镜像 dock ...

  7. C#中DataTable数据导出为HTML格式文件

    /// <summary> /// DataTable导出为HTML的Table并保存到本地 /// </summary> /// <param name="d ...

  8. MarkDown文件插入图片(绝对\相对路径\调整图像大小位置)

    1. 插入网络图片(有效网络连接) Markdown中插入图片的语法为,图片路径可以直接写入图片有效链接网址即可: 方法1:![图片说明](图片有效链接网址) 方法2:<img src=&quo ...

  9. (C语言)每日代码||2024.1.10||scanf("%6f",&a)

    #include <stdio.h> int main() { float a; scanf("%.3f", &a);//输入1234 printf(" ...

  10. Java 将PDF转为PowerPoint (2行代码)

    通过编程实现PDF转PPT的功能,可以自动化转换过程,减少手动操作的工作量,并根据需要进行批量转换.将PDF文件转换为PPT文档后,可以利用PPT的丰富功能和动画效果,达到更好的演示效果. 在Java ...