3.5 容器使用
3.5.1 简述
Apptainer是目前在高性能计算平台上被大量应用的轻量虚拟化容器技术,能够提供操作系统级的虚拟化。 Hep_container是基于Apptainer容器管理命令开发的适用于高能所计算集群的容器客户端工具,满足用户使用多种操作系统版本及环境的需求。说明:本文涉及的命令均需要在lxlogin登陆节点上运行,所用命令在以下目录,建议将该目录加入用户个人环境变量 PATH 中。
/cvmfs/container.ihep.ac.cn/bin/
3.5.2 命令说明
Hep_container的容器命令主要有三种操作images、shell、exec。可以在命令行中通过help参数查看各个命令的使用说明和样例
$ ./hep_containerhelpUsage:./hep_container<command>[command options...]CONTAINER USAGE COMMANDS: shell Run a Bourne shell within container imageexecExecute acommandwithin container image images List Support container imagesgroupsList Supportgroups-g groupname With a specific group name EXAMPLES: ./hep_container images ./hep_containergroups./hep_container shell SL5 ./hep_container shell SL5 -g physics ./hep_containerexecSL5cat/etc/redhat-release ./hep_containerexecSL5 python ./yourprograme.py ./hep_containerexecSL5 -g physicscat/etc/redhat-release
3.5.2.1 查看支持镜像
命令格式:hep_container images 该指令可以查看当前提供的操作系统容器镜像。
$ hep_container images Hep_container support images: SL5:Scientific Linux5SL6:Scientific Linux6SL7:Scientific Linux7
3.5.2.2 查看支持用户组/实验组
命令格式:hep_container groups 该指令可以查看容器命令当前支持提供的用户组或者实验组。通过 -g 参数指定用户组或实验组,容器内会挂载对应用户目录和实验目录。不指定-g参数默认采用主组作为用户组或实验组。
$ hep_containergroupsHep_container support groups: u07|atlas|atlasrun|comet|offline|physics|higgs|ams|cms|dyw|hxmt|polars|juno|argo|lhaaso|
3.5.2.3 进入容器环境
命令格式:hep_container shell [container image] 该指令可以在容器内启动一个shell,因此可以在容器外部与容器内部进行交互操作。运行exit则可以退出该shell。 下例为运行启动一个SL5操作系统镜像后,用户当前为SL5的系统环境.
$ hep_container shell SL5 Apptainer: Invoking an interactive shell within container... Apptainer>cat/etc/redhat-release Scientific Linux SL release5.5(Boron)Apptainery>exitexit
3.5.2.4 容器内执行命令
命令格式:hep_container exec [container image] [command] 该指令可以在外部主机上将指定的command运行在指定的容器内。 下例为在lxlogin上以SL5的环境运行SL5命令,并得到结果。
$ hep_containerexecSL5cat/etc/redhat-release Scientific Linux SL release5.5(Boron)
3.5.2.5 组参数
不同实验组的用户进入到容器会挂载对应实验的数据盘。 如果不指定-g 组参数,默认挂载所属主组实验的数据盘。-g 可以加一个组或多个组,多组以:隔开 查看自己的组信息。第一个gid一般为主组
[user@lxlogin-002 ~]$idliminguid=60020(liming)gid=600(u07)groups=600(u07),290(physics),1004(juno)hep_container shell SL5 -g physics hep_container shell SL6 -g juno:dyw
3.5.3 说明
由于AFS 口令认证版本问题,在lxlogin上暂时无法实现登录同时获得afs的tokens,如果用户登录lxlogin后,出现类似以下报错 mkdir: cannot create directory '/afs/ihep.ac.cn/users/z/zhengw/.Xauthority': Permission denied 请先运行:klog 再执行容器的各种命令。