Docker 与 Apptainer



使用 Docker 运行 Docker 镜像:

docker run -it --rm <image> command

其中:

通过 -v 绑定可以将本地目录挂载到容器中以实现持久化存储。 例如,下面的命令会让本地的 ~/mywork 以 /usr/local/mywork 的形式在容器中可用:

docker run -it --rm  -v ~/mywork:/usr/local/mywork <image> command


常用命令

Dockerfile 关键字 CMD 可以指向一个脚本,如果未在 Docker run 命令中指定要执行的命令,该脚本就会运行。

关键字 ENTRYPOINT 定义了一个始终会在容器中运行的脚本, 无论是否指定 command 参数。

可以在运行时用下面的选项覆盖入口点(此处以 sh 为例):

--entrypoint /bin/sh


检查镜像:

docker image inspect <image> 



Apptainer

Linux 主机上提供了 apptainer(原名 Singularity),其用法与 Docker 类似。 它使用一个缓存目录来存储镜像,因此我建议将该缓存设置到 磁盘容量较大的位置。在下面的示例中使用 /path/to/user/cache:

export sif_cache=/path/to/$USER/sif

然后:

export APPTAINER_CACHEDIR=$sif_cache/apptainer-cache 
export APPTAINER_TMPDIR=$sif_cache/apptainer-tmp 
export TMPDIR=$sif_cache/apptainer-tmp 

apptainer exec --cleanenv --bind ~/mywork:/usr/local/mywork \
  <image> command