Singularity(四)| 自定义容器

本文详细介绍了如何使用Singularity定义文件构建和管理容器,包括基础镜像的选择,安装软件包,设置环境变量,以及从容器仓库下载和修改现有容器的过程。还提供了基于CentOS7的示例定义文件,展示了丰富的软件包安装和配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Singularity(四)| 自定义容器

4.1 Singularity Definition 文件

对于可复制的、高质量的容器,我们应该使用定义文件(Definition File)构建 Singularity 容器 。使用定义文件的方式可以在纯文本文件中描述容器的配置和构建过程。定义文件通常具有 .def 扩展名。在其中可以指定容器的基础镜像、安装软件包、设置环境变量等。然后使用 sudo singularity build 命令根据定义文件构建容器。这也使得添加文件、环境变量和安装定制软件变得容易。

定义文件包含一个 header 和一个 body。header 决定了开始使用的基础容器,body 进一步分为几个部分,这些部分执行诸如安装软件、设置环境以及将文件从主机系统复制到容器中的操作。

以下是一个定义文件的示例:

BootStrap: library
From: ubuntu:20.04

%
setup
 mkdir ${SINGULARITY_ROOTFS}/app

%
post
    apt-get -y update
    apt-get -y install fortune cowsay lolcat

%
environment
    export LC_ALL=C
    export PATH=/usr/games:$PATH

%
runscript
    fortune | cowsay | lolcat

%
labels
    Author GodloveD

在这个例子中,header 告诉 Singularity 使用来自容器库的基本 Ubuntu 20.04 镜像。

引导文件的主要内容分为几节(section)。在构建过程中,不同的节在不同的时间添加不同的内容或执行命令。注意,如果任何命令失败,构建过程将停止。def 文件中各节的顺序并不重要,在构建过程中可以包含多个同名的节,并将它们相互追加。

  • unset
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值