将 Docker 作业提交到 LSF
使用 Docker 应用程序概要文件 或队列 将 Docker 作业提交到 LSF。
关于本任务
容器作业不支持以下作业提交 (bsub) 选项: -E和 -Ep。
过程
- 将作业提交到 Docker 应用程序概要文件或队列。
- 使用 bsub -app 选项将作业提交到 Docker 应用程序概要文件 (即,具有 CONTAINER 参数的指定值的应用程序概要文件)。
例如,如果在
dockerapp应用程序概要文件中定义了 CONTAINER ,请运行以下命令以提交 Docker 作业:bsub -app dockerapp ./myjob.sh
- 使用 bsub -q 选项将作业提交到 Docker 队列 (即,具有 CONTAINER 参数的指定值的队列)。
例如,如果在
dockerq队列中定义了 CONTAINER ,请运行以下命令以提交 Docker 作业:bsub -q dockerq ./myjob.sh
如果在同一作业提交中同时指定应用程序概要文件和队列,那么应用程序概要文件中的 CONTAINER, EXEC_DRIVER和 DOCKER_IMAGE_AFFINITY 参数设置优先于队列中的相同参数设置。
例如,如果使用以下命令提交作业,那么 dockerapp 应用程序概要文件中的参数将覆盖 dockerq 队列中的相应参数:
bsub -app dockerapp -q dockerq ./myjob.sh
- 使用 bsub -app 选项将作业提交到 Docker 应用程序概要文件 (即,具有 CONTAINER 参数的指定值的应用程序概要文件)。
- 如果允许用户在作业提交时为 Docker 容器作业指定映像名称 (即,如果在指定 image 关键字时使用 $LSB_CONTAINER_IMAGE 环境变量作为映像名称) ,请在作业提交时设置 LSB_CONTAINER_IMAGE 环境变量以指定 Docker 映像名称。
通过使用下列其中一种方法设置 LSB_CONTAINER_IMAGE 环境,在作业提交时指定容器映像名称 (例如 ubuntu):
- 根据 shell 环境指定 LSB_CONTAINER_IMAGE 环境变量。 例如,要指定名为 ubuntu的 Docker 映像,请按如下所示设置环境变量:
- 在 csh 或 tcsh中:
setenv LSB_CONTAINER_IMAGE ubuntu
- 在 sh, ksh或 bash中:
export LSB_CONTAINER_IMAGE=ubuntu
- 在 csh 或 tcsh中:
- 使用 bsub -env 选项。 例如,要指定名为 ubuntu 的 Docker 映像
bsub -env LSB_CONTAINER_IMAGE=ubuntu -app udocker a.out -in in.dat -out out.dat
- 使用 esub 脚本设置 LSB_CONTAINER_IMAGE 环境变量,然后使用 bsub 命令调用 esub :例如,在 $LSF_SERVERDIR 目录中创建具有以下内容的 esub.docker 脚本:
#!/bin/sh exec 1>&2 echo "LSB_CONTAINER_IMAGE=\"$1\"" >> $LSB_SUB_MODIFY_ENVFILE通过运行以下命令,提交作业以调用 esub.docker 脚本:
bsub -a "docker(ubuntu)" -app udocker a.out -in in.dat -out out.dat
- 根据 shell 环境指定 LSB_CONTAINER_IMAGE 环境变量。 例如,要指定名为 ubuntu的 Docker 映像,请按如下所示设置环境变量:
- 要使用 Docker 入口点映像提交作业,但不使用命令,请使用 LSB_DOCKER_PLACE_HOLDER 关键字代替命令。
例如,运行以下命令以使用 Docker 入口点映像提交 Docker 作业:
bsub -app dockerapp LSB_DOCKER_PLACE_HOLDER
- 可选: 要在集群,队列或应用程序级别覆盖 Docker 映像亲缘关系设置,请在提交 Docker 作业时使用 -env 选项定义 LSB_DOCKER_IMAGE_AFFINITY 环境变量。
LSB_DOCKER_IMAGE_AFFINITY=Y | y | N | n
作业级别环境变量覆盖应用程序级别,而应用程序级别覆盖队列级别,而队列级别覆盖集群级别配置。
bsub -env LSB_DOCKER_IMAGE_AFFINITY=N -app udocker a.out -in in.dat -out out.dat