"""参考文档
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. [转帖] Linux命令拾遗-使用blktrace分析io情况

    https://www.cnblogs.com/codelogs/p/16060775.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 一般来说,想检 ...

  2. [转帖]Unixbench的使用(综合性能测试、2D测试)和问题解决(跑不出多线程分数,调不出窗口,报错等)

    一.Unixbench简介 Unixbench一个基于系统的基准测试工具,不单纯是CPU 内存 或者磁盘测试工具.测试结果不仅仅取决于硬件,也取决于系统.开发库.甚至是编译器.Unixbench是一个 ...

  3. 【转载】Linux常用命令大全(非常全!!!)

    [转载]Linux常用命令大全(非常全!!!) https://www.cnblogs.com/purple5252/p/11870584.html Linux常用命令大全(非常全!!!) 最近都在和 ...

  4. Linux部分参数的学习

    Linux部分参数的学习 简介 之前总结过很多Nginx或者是部署软件时的一些注意事项. 但是感觉对linux系统参数部分掌握的不是很好. 今天周末想着整理一下,作为备忘. limits.conf i ...

  5. .Net Core 3.1浏览器后端服务(二) Web API项目分层

    一.前言 分层开发的思想在计算机领域中至关重要,从操作系统到软件设计,分层思想无处不在. 在搭建项目的分层结构前,先简单了解下分层的优缺点.如下图,分为(呈现层.业务层.服务层.数据层) 分层的优点: ...

  6. 手写promise自定义封装异步任务回调的执行

    自定义封装异步任务回调的执行 <script type="text/javascript"> let p = new Promise((resolve, reject) ...

  7. Go-操作redis/redigo

    目录 Go-操作redis 安装 连接 使用 设置key过期时间 批量获取mget.批量设置mset 列表操作 hash操作 Pipelining(管道) redis发布会订阅模式 事务操作 万能操作 ...

  8. 释放搜索潜力:基于ES(ElasticSearch)打造高效的语义搜索系统,让信息尽在掌握

    释放搜索潜力:基于ES(ElasticSearch)打造高效的语义搜索系统,让信息尽在掌握[1.安装部署篇--简洁版],支持Linux/Windows部署安装 效果展示 PaddleNLP Pipel ...

  9. 深度学习基础入门篇[六]:模型调优,学习率设置(Warm Up、loss自适应衰减等),batch size调优技巧,基于方差放缩初始化方法。

    深度学习基础入门篇[六]:模型调优,学习率设置(Warm Up.loss自适应衰减等),batch size调优技巧,基于方差放缩初始化方法. 1.学习率 学习率是训练神经网络的重要超参数之一,它代表 ...

  10. C/C++ 使用API实现数据压缩与解压缩

    在Windows编程中,经常会遇到需要对数据进行压缩和解压缩的情况,数据压缩是一种常见的优化手段,能够减小数据的存储空间并提高传输效率.Windows提供了这些API函数,本文将深入探讨使用Windo ...