Docker和Singularity
Docker比较适合测试: 环境适配,每种环境对应一个容器。Docker需要host宿主机上运行Docker服务(root权限),隔离性很高,但会牺牲性能,对GPU环境支持不好(需要安装NVIDIAN公司的插件才能把GPU暴露给container)
Sigularity可认为专为HPC环境开发的容器工具,提供对MPICH和OpenMPI并行开发支持,提供对GPU支持,几乎无性能损失。一个打包的应用镜像,到处部署使用。

| 概念 | 说明 | 备注 |
|---|---|---|
| 镜像(Image) | Singularity打包好的运行环境 | 一般以单个文件(SIF)存在,只读(read-only) |
| 容器(Container) | 在宿主机上启动运行的容器镜像 | 用singularity命令启动,启动运行时可配置运行环境,绑定(bind)宿主机文件路径等 |
| 沙箱(sandbox) | Singularity将只读镜像转成可写的沙箱形式 | 可根据需要配置运行环境,之后可生成定制后的新镜像 |
| 宿主机器(host) | 指制作容器镜像和运行容器的机器 | 制作镜像的宿主机需要有root权限;运行容器的宿主机不需要root权限 |
| 绑定(bind, -B选项) | 指运行容器时将宿主机器上的文件路径映射到容器内指定文件路径 | 借助绑定,容器内运行的程序可以操作宿主上的文件内容 |
| DEF文件(Definition File) | 定制化镜像的描述文件 | 主要包含指定OS版本基础镜像,和用户自定义的安装软件包命令 |